• 数字图像第一章笔记


    目录:

    1.1 背景

    1.2 什么是数字图像处理

    1.3 MATLAB和图像处理工具箱基础

    1.4 教材涉及的图像处理范围

    1.5 网站

    1.6 符号

    1.7 基本原理

    1.1背景

    1.2 什么是数字图像处理

    图像à二维函数 (二维数组?)

    其中和是空间坐标,其值称为图像在该点处的亮度或灰度

    数字图像à当、 、的值都是有限的离散值时,称该图像为数字图像

    数字图像处理研究à借助于计算机处理数字图像的研究

    像素(pixels)==图片元素(picture element)==图像元素(image element)à指组成数字图像的元素,每个元素都有特定的位置和数值

    图像处理的定义

    输入(图像)à输出(图像) 比较狭义

    输入(图像)à输出(特征)

    图像处理和计算机视觉----无清晰的分割界限

    低级处理----如降噪,对比度增强、锐化

    中级处理----如图像分为区域和目标,标记描述,简化

    高级处理----利用与人类视觉相关的感知函数,对识别对象进行总体确认

    1.7 基本原理

    1.71

    灰度级----指单色图像的亮度

    RGB彩色图像----由三幅单色图像组成

    图像---关于坐标x, y是连续的

    采样---对坐标值数字化

    量化---对幅值数字化

    数字图像----经过采样和量化后的有限坐标和幅值的图像

    • 采样和量化后得到的是一个实数矩阵,得到的数字图像大小
    • 采样后的离散坐标,为了方便,取整数值

    图像工具箱中使用的坐标约定有两种:

    • 像素坐标----x表示行,y表示列
    • 空间坐标-----x表示列,y表示行

    1.72 图像的输入/输出和显示

    >> f=imread('cameraman.tif');

    >> imshow(f)

    >>figure,imshow(f,[15,200]) %[15,200]是指将原图中灰度值低于15的全部阶段成15,200以上的全部截断成100.

    >> figure,imshow(f,[]) % []显示该图像的最小值与最大值之间的范围

    Imwrite函数

    >>imwrite(f,'cameraman.jpg','quality',q)

    qà介于0到100的整数,越小,压缩越高,质量越不好

    >>imwrite(g,'filename.tif','compression','parameter',

    'resolution',[colres rowres])

    'parameter'----'none' 无压缩

    'packbits' 用于非二值图像

    'lwz'. 'deflate'. 'jpeg' 'ccitt'. 'fax3' 'fax4'

    [colres rowres]-----默认[72 72] [垂直方向上点数。水平方向上的点数]

    1.73 类和图像类型

    MATLAB中像素值不限制为整数

    图像工具箱所支持的图像像素类型

    double----8字节/像素

    single-----4字节/像素

    uint8-----1字节/像素

    uint16、uint32、int8、int16、int32、char(2字节/像素)

    logical(1字节/像素)

    工具箱支持4种图像类型:

    1.灰度级图像(Gray-scale images)-----数据矩阵:

    uint8-----[0,255]

    uint16----[0,65535]

    double、single---归一化为[0,1]区间实数

    2.二值图像(Binary images)

    取值为0、1的逻辑数组

    B=logical(A)%将A矩阵中非0的数值转换为1,0还是0

    A---数值数组

    B---逻辑数组

    Islogical(B)%判断该数组是否逻辑数组

    3.索引图像(Indexed images)

    4.RGB图像(RGB images)

    数据类型转换

    B=data_class_name(A)

    如: B=double(A); A---uint8, B---double

    B=uint8(A); A---double, B---uint8

    分数取整,超过部分截断

    例:A=[400 200;1,80], B=uint8(A)

    因为uint8的范围是[0,255],所以400会被截断成255,

    所以B=[255 200;1,80].

    图像类型之间的转换

    >>f=[-0.5 0.5;0.75 1.5]

    f = -0.5000 0.5000

    0.7500 1.5000

    >>g=im2uint8(f)

    g =

    2×2 uint8 matrix超过[0,255]范围就截断

    0 128 -0.5*255 0.5*255

    191 255 0.75*255 1.5*255

    %im2uint8(f)---f可是logical、uint8、uint16、double

    %im2uint16(f)---同上

    g=mat2gray(A,[Amin,Amax])%归一化
    g--值介于0和1之间实数; A----double
    Amin--A中小于其的置为0;Amax--A中大于其的置为1

    g=im2double(h)函数

    >>A=[3 4; 5 9];

    >>AA=uint8(A);

    >>B=im2double(A) %不改变double型数组

    B =

    3 4

    5 9

    >>B=im2double(AA)%如果类型是uint8,uint16,logical, 输出double型,值0,1之间

    B =

    0.0118 0.0157

    0.0196 0.0353

    uint8 /255 直接除就好

    uint16 /65535 同上

    meshgrid函数制作关于f=Asin(u0x+v0y)的代码

    [X,Y]=meshgrid(1:3,10:14)%X是列标、Y是行标

    解 function f=twodsin2(A,u0,v0,M,N)

    r=0:M-1;%行

    c=0:N-1;%列

    [C,R]=meshgrid(c,r);

    f=A*sin(u0*R+v0*C);

    >>f=twodsin2(1,1/(4*pi),1/(4*pi),512,512);

    >>imshow(f)

  • 相关阅读:
    二进制数组ArrayBuffer
    iperf3测量一个网络最大带宽
    Proxy与Reflect
    Symbol
    Iterator
    Set与Map
    Generator
    Android 共享参数 SharedPreferences
    DDMS files not found: xxxhprof-conv.exe
    Android 状态栏通知 Notification
  • 原文地址:https://www.cnblogs.com/panqiaoyan/p/13059987.html
Copyright © 2020-2023  润新知