数字图像处理第三章

第三章 图像基本运算与灰度变换

图像的运算

  • 点运算:比如改变亮度,对比度等。

  • 代数运算:是图像之间点对点的运算。

    • 加法:去除叠加性噪声,生成图像叠加性效果;
    • 乘法:可改变亮度;
    • 减法:显示两幅图像的差异,检测同一场景两图像之间的变化,去除不需要的叠加图案,图像分割。
    • AND操作有黑就变黑;or操作有白就变白;XOR操作同色变黑,异色变白
  • 几何运算:涉及到空间位置变化,和灰度插值,可以实现图像转动、扭曲、倾斜、拉伸。确定灰度值的方法:像素移交映射、像素填充映射

最邻近插值算法(零阶插值)

令输出像素的灰度值等于离它所映射到的位置最近的输入像素的灰度值。用最近邻插值法旋转图像带有锯齿边。

双线性插值算法(一阶插值)

f(x,y)f(x,y)为两个变量的函数,其在单位正方形顶点的值已知。假设我们希望通过插值得到正方形内任意点的f(x,y)f(x,y)值。

f(x,y)=ax+by+cxy+df(x,y) = ax+by+cxy+d

先线性插值算出x0,x1x_0,x_1,再线性插值算出f(x,y)f(x,y)

灰度变换

将一个灰度区间映射到另一个灰度区间的变换称为灰度变换。

图像反转

灰度级范围[0,L1][0, L-1]rrss分别代表处理前后的像素值

s=L1rs = L-1-r

对数变换

s=clog(1+r)s=clog(1+r)

  • 将输入范围中范围较窄的低灰度值映射为输出中范围较宽的灰度值,或将输入范围中范围较宽的高灰度值映射为输出中范围较窄的灰度值
  • 压缩像素值变化较大的图像的动态范围(如傅里叶频谱的显示)
  • 扩展图像中的暗像素值,同时压缩更高灰度级的值(幂律变换更适用)
  • 反对数变换的作用与此相反

幂次变换

s=crγs=cr^\gamma

  • 用于校正幂次响应现象的过程叫做伽马校正

对比度拉伸

扩展图像灰度级动态范围

比特平面分层(位图切割)
  • 高比特平面包含了大多数数据,低比特平面贡献了更精细的灰度细节

  • 显示一幅8比特图像的第8个比特平面:用阈值灰度变换函数将0-127的灰度映射为0,将128-255之间的灰度映射为1

  • 图像重建:使用第n个平面的像素(0 or 1)左移n-1位,然后相加

直方图处理

直方图均衡化

灰度映射函数:s=T(r),0rL1s=T(r),0\leq r\leq L-1

s=T(r)=(L1)0rpr(w)dws=T(r)=(L-1)\int_0^rp_r(w)dw0rpr(w)dw\int_0^rp_r(w)dwrr的累积分布函数

  • 图片中为8bit图像
  • 为了增加对比度,不对最小灰度级进行改变
  • 四舍五入
直方图规定化

使得映射后各像素累积分布函数的值与规定的累积分布函数的值最接近,即j=0rkpr(j)i=0skps(i)|\sum_{j=0}^{r_k}p_r(j)-\sum_{i=0}^{s_k}p_s(i)|最小。

  • 当映射不唯一时,书上说按惯例映射到最小的像素值,但老师说都可以
  • 最后要单独列出灰度映射表

例题参考


数字图像处理第三章
https://lmc20020909.github.io/数字图像处理Chapter03/
作者
Liu Mingchen
发布于
2022年11月14日
许可协议