数字图像的感知和获取
图像是光与场景中的物质相互作用形成的,物质会对光进行反射与吸收
一幅图像记录的是物体辐射能量的空间分布:
\[I=f(x,y,z,\lambda,t) \]这个函数是描述光强关于空间位置,频率,时间的
一般我们讨论的是平面单色静止图像,因此一个空间维度和后面的频率维度,时间维度都可以去除
注:这里的光强不一定是光的强度,但是大多数情况下,我们讨论的是光的强度,这就意味着我们会着手于光的强度的性质
简单的成像模型
当图像是上面简化的平面单色静止图像时有:
\[f(x,y)=i(x,y)r(x,y) \]其中 \(i(x,y)\) 是入射光强,\(r(x,y)\) 是表面的反射能力
这个模型在cg中很常见,尤其是光线追踪逆向推导光强的时候
数字图像的采样和量化
实际图像是连续的空间中连续值域的函数,但是我们需要将其转化为离散空间中离散值域的函数
其中,对于空间坐标的离散化叫做采样,对于图像的光强的离散化叫做量化
由于我们讨论的是单色的图像,所以我们的光强实际上的一种灰度的东西,常见的一种量化方式,就是等间隔量化,用一个数字来描述一个区间的灰度,并且区间的间隔是相同的
同样对于图像而言,我们也有相似的采样方法,空间分辨率,就是每间隔相同的一段的采样相同,一般情况下,采样数越高,意味着我们的数字图像越能有效的反应我们的原本图像
在我们上述的空间分辨率和等间隔量化告诉我们,我们很自然的可以用矩阵来代表一个数字图像,矩阵中的元素叫做像素,对应的值叫做像素值
动态范围:图像中灰度的范围(最高值和最低值的区间)
图像对比度:一幅图像中最高和最低灰度的灰度差
反差比:一幅图像中最高和最低的灰度级的比率
高动态范围,高对比度
低动态范围,低对比度
几种数字图像类型
黑白图像
灰度图像
真彩色图像
像素间的基本关系
相邻像素
4邻域,D邻域,8邻域
连通性
4连通,8连通,m连通
距离
在数学上,只要满足这样的定义都可以叫做距离:
- \(D(p,q) \geq 0\) 且当且仅当 \(p=q\) 时等于0
- \(D(p,q)=D(q,p)\)
- \(D(p,z)\leq D(p,q)+D(q,z)\)
第三个实际上是三角法则
这意味着距离实际上对应着一个某种意义上的最短路
欧式距离
\(D_e(p,q)=\sqrt{(x-s)^2+(y-t)^2}\)
\(D_4\)距离
\(D_4(p,q)=\abs{x-s}+\abs{y-t}\)
\(D_8\)距离
\(D_8(p,q)=max{(\abs{x-s},\abs{y-t})}\)
可以看到上面的不同距离分别对应了不同意义上的最短路
Matlab的图像处理
在MATLAB中,用于图像处理的主要类包括:
-
uint8
、uint16
、double
等图像数据类型:这些类用于表示不同精度和范围的图像数据。例如,uint8
用于表示8位无符号整数图像,uint16
用于表示16位无符号整数图像,double
用于表示双精度浮点数图像。 -
imread
:用于读取图像文件并将其加载到MATLAB中。它返回一个表示图像的矩阵。 -
imwrite
:用于将图像数据保存为图像文件。它接受图像矩阵和文件名作为输入。 -
imshow
:用于显示图像。它接受图像矩阵作为输入,并在MATLAB图形窗口中显示图像。 -
imresize
:用于调整图像的大小。可以通过指定目标大小或缩放因子来调整图像的尺寸。 -
imadjust
:用于调整图像的对比度和亮度。可以使用不同的参数来修改图像的灰度级范围。 -
rgb2gray
:用于将彩色图像转换为灰度图像。 -
imfilter
:用于对图像应用各种滤波器,例如平滑滤波、锐化滤波等。 -
imrotate
:用于旋转图像。 -
imcrop
:用于裁剪图像。