数字图像处理基础

发布时间 2023-08-10 15:51:47作者: zzqDeco

数字图像的感知和获取

图像是光与场景中的物质相互作用形成的,物质会对光进行反射与吸收

一幅图像记录的是物体辐射能量的空间分布:

\[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连通

距离

在数学上,只要满足这样的定义都可以叫做距离:

  1. \(D(p,q) \geq 0\) 且当且仅当 \(p=q\) 时等于0
  2. \(D(p,q)=D(q,p)\)
  3. \(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中,用于图像处理的主要类包括:

  1. uint8uint16double等图像数据类型:这些类用于表示不同精度和范围的图像数据。例如,uint8用于表示8位无符号整数图像,uint16用于表示16位无符号整数图像,double用于表示双精度浮点数图像。

  2. imread:用于读取图像文件并将其加载到MATLAB中。它返回一个表示图像的矩阵。

  3. imwrite:用于将图像数据保存为图像文件。它接受图像矩阵和文件名作为输入。

  4. imshow:用于显示图像。它接受图像矩阵作为输入,并在MATLAB图形窗口中显示图像。

  5. imresize:用于调整图像的大小。可以通过指定目标大小或缩放因子来调整图像的尺寸。

  6. imadjust:用于调整图像的对比度和亮度。可以使用不同的参数来修改图像的灰度级范围。

  7. rgb2gray:用于将彩色图像转换为灰度图像。

  8. imfilter:用于对图像应用各种滤波器,例如平滑滤波、锐化滤波等。

  9. imrotate:用于旋转图像。

  10. imcrop:用于裁剪图像。