zoukankan      html  css  js  c++  java
  • 【转载】数字图像处理

    本文由 简悦 SimpRead 转码,原文地址 https://www.jianshu.com/p/926d6c15dbf9

    1. 绪论

    • 数字图像: 能够在计算机行显示和处理的图像
    • 数字图像处理: 利用计算机对图像进行分析、加工等处理,使其能够满足各种目的
    • 数字图像的特点
      1. 图像中信息量大
      2. 图像处理数据量大
      3. 处理过程重复运算量大
      4. 处理技术综合性强

    1.1. 常见概念(术语)

    • 信噪比(SIGNAL NOISE RATIO,SNR or S/N)

      即放大器的输出信号的功率,与同时输出的噪声功率的比值,常常用分贝数表示。一般来说,信噪比越大,说明混在信号里的噪声越小,声音回放的音质量越高,否则相反。

    • 传感器Sensor

      • CCD

        光照射每个像素产生电荷,并累积。由于CCD只有一个读出端口,因此需要串行的将每个像素的电荷在像素之间进行转移到输出端口。最终将电荷转换为电压,进行放大和AD转换得到图像。

      • CMOS

        在每个像素处即将电荷转换为了电压,因而导致了很多独特的优缺点,如今已经在绝大多数应用中代替了CCD。

      • 由于二者结构的不同,导致两者在性能方面也各有所长

        • CMOS:响应快,功耗低,噪点高,不均匀,画质受噪声影响多,ISO较小
        • CCD:响应慢,功耗高,噪点低,均匀,画质高,ISO较高
    • 曝光补偿, 就是增加拍摄时的曝光量

    • 增益(ISO)

      一般只是在信号弱,但不想增加曝光时间的情况下使用,一般相机增益都产生很大噪音。调节亮度增益说白了就是改变ISO,改变CMOS传感器的感光性能,但是会影响到画质。

    • 亚像素轮廓

    2. 数字图像处理基础

    2.1. 人类视觉构造

    • 亮度:光线的明暗程度
    • 色调:色彩模式下,原色的明暗程度,如 RGB 下为红绿蓝三原色的明暗程度
    • 饱和度:色彩的浓度

    2.2. 亮度对比效应

    1. 同时对比效应:按对比度感觉物体量度对比

    2. 马赫带效应:视觉的主管感受在亮度有变化的地方出现需要的明亮或黑暗的条纹

    2.3. 图像数字化:将连续的模拟信号转为离散的数字信号。

    2.3.1. Nyquist采样定理

    离散信号替代连续信号的条件:

    1. 原始信号为有限带宽信号
    2. 采样频率不小于信号最高频率的2倍

    2.3.2. 空间分辨率

    • 单位:像素/英寸,像素/厘米,像素*像素
    • 数字图像的量化:将灰度转为整数代表。8位可以表示 2^8 个灰度级(0-256)
    • 幅度分辨率:灰度级越多,该分辨率越高

    虚假轮廓:由于灰度级过少,导致颜色区别在离散化的时候被加大,导致出现类似轮廓的东西。

    2.3.3. 像素间的基本关系

    位置关系

    • 4邻接
    • 4对角邻域
    • 8邻接

    邻接性 - 邻接条件

    1. 4 相邻或 8 相邻
    2. 灰度值相近

    连通性:由邻接性产生的性质

    连通集:由连通性产生

    区域:R 是图像的像素子集,若 R 为连通集,则 R 为一个区域。

    边界:区域 R 中,有一个或多个领域像素不在该区域中,则该像素为其边界。

    2.3.4. 像素距离

    1. 欧式距离
    2. 街区距离 = |x1-x2| + |y1-y2|
    3. 棋盘距离 = max(|x1-x2|,|y1-y2|)

    2.3.5. 数字图像代数运算

    应用

    • 加法:去除加性噪声,图像叠加。

    • 减法:检测图像变化

    • 乘法:抠图,改变灰度

    3. 灰度变换与空间滤波

    3.1. 图像增强

    • 点运算:对单个像素进行变换
    • 空间滤波:基于领域进行处理

    3.2. 灰度变换

    原像素 -> 映射函数 -> 变换后的像素

    3.2.1. 应用

    1. 图像求反(底片效果)

      以 8bits 为例:变换像素灰度 = 255 - 原像素灰度

    2. 线性变换

      扩张:将灰度集中的图像(曝光不足或者过曝)灰度动态范围拉大,加大反差,使得图像更清晰。

      压缩:反之,可以柔和图像。

    3. 分段线性变换

    4. 非线性变换

      目的对不同灰度范围的像素做不同程度的处理,比如暗部和高光就没必要拉大灰度值动态范围。

      • 对数扩展

      • 伽马变换(指数扩展)

    5. 灰度直方图:反映灰度分布

      横轴灰度级,纵轴像素数或者百分比

    3.3. 计算

    3.3.1. 直方图均衡化

    3.3.2. 直方图规定化

    简而言之,给定一个模版,使得变换后的图像像素灰度分布与模版相似。

    比如该题,0 灰度的占 0.19 接近目标模版 0.2,那么就变为目标模版的灰度 3。中间灰度 1,2,3 加起来 0.62 接近目标模版的 0.6 所以就变为 5。

    3.4. 空域滤波(卷积)

    空域滤波器 / 模版:一个矩阵

    滤波过程

    1. 在图像中依次将滤波器对齐图像的像素
    2. 做卷积(相应像素与 k 乘,最后求和)
    3. 将结果赋值给滤波器中间位置对应的图像像素

    边缘问题:因为滤波器无法超出图像范围,所以边缘无法滤波。

    • 处理方法:

      1. 忽略边缘
      2. 填补:假想边缘外有与边缘灰度值一样的像素

    空域滤波分类

    1. 平滑滤波

      平滑图像,去除高频分量,使得图像灰度值变化不那么大,同时降低噪声。

      1. 领域平均法

        可以减少噪声,但图像也模糊了

      2. 加权平均法

        不同位置的灰度重要性(权重)不一样,中间的最为重要,旁边的重要性降低。

      3. 非线性平滑滤波

    2. 锐化滤波

      去除低频分量,使得图像反差增大,边缘明显。

      1. 利用差分反映相邻像素的灰度变化大小(连续的变化程度叫微分,离散的叫差分,其实就是差值。是一个概念)

      2. 通过差分的出梯度。(梯度可用来检测边缘,因为边缘像素灰度变化很大)

      1. 锐化后的像素灰度值 = 原像素灰度值 + 锐化程度系数 * 梯度

      应用

      1. 使用梯度进行边缘检测

      2. 二阶差分模版——拉普拉斯算子

        梯度

        直接锐化

    4. 频率域滤波

    前面我们用的矩阵滤波器是在空域对图像进行处理,现在要转到频率区域。对频域不理解的同学,可以去知乎搜一搜。

    天才数学家傅立叶发现,任何周期信号都能用正弦函数级数表示,任何非周期信号都可以用正弦信号的加权积分表示。

    所以这些正弦函数的分布就产生了频域的概念。

    理想的滤波器:去掉某些频率成分保留剩余成分,也就是令信号矢量的某些频率分量等于0,其他频率分量不变,这一行为得到的结果就是原信号矢量在子空间中的投影。

    4.1. 傅里叶变换在图像处理中的应用

    将图像二维离散傅立叶变换后:

    四个角,为低频部分。中心为频率最高处。

    最亮说明低频能量最高(看图片,黑大衣,背景等这些灰度变化小的像素占了大多数,它们就是低频分量)。

    由于二维 DFT 的周期性和共轭对称性,我们可以将频率谱中心化。

    频谱图的纵横交错性

    频率滤波步骤

    1. 图像空域转频域
    2. 将频谱与频率滤波器相乘
    3. 进行傅立叶反变换得到图像

    4.2. 频域滤波分类

    1. 低通滤波
    2. 高通滤波
    3. 带通和带阻滤波
    4. 同态滤波

    滤波器的作用是什么?

    • 滤波器的作用就是把噪音去掉,把感兴趣的信号从大量信号中提取出来

    4.2.1. 低通滤波器(Low Pass Filter,LPF)

    思想:噪声和边缘属于高频成分,低通,顾名思义低频通过,滤去高频。低通滤波可以简单的认为:设定一个频率点(截止频率),当信号频率高于这个频率时不能通过。

    理想低通滤波器

    其中 D0 为人为确定的截止频率

    缺点:可能产生振铃现象

    振铃现象产生的原因:

    Butterworth低通过滤器

    缺点:平滑效果不如理想低通

    当 Butterworth 的阶数 n 升高时,振铃现象加大。但是优于理想低通,因为低频与高频之间是平滑过度的。而阶数越高,平滑程度越低,所以振铃现象增强。

    高斯低通过滤器(GLPF)

    缺点:平滑效果不如前两个

    平滑效果与截止频率的关系:

    4.2.2. 高通滤波器

    图像在传递的过程中,噪声主要集中在高频部分,边缘及急剧变换的部分也都与高频分量有关,所以高通滤波可以对图像进行锐化处理。

    高通滤波模版 = 1 - 低通滤波模版

    效果:

    同样 IHPF 有振铃现象。

    高通滤波得到的仅仅为边缘信息,非边缘信息全变黑了。为了得到增强的锐化图像,使用高频增强滤波方法。即,k * 高通滤波器 + c (其中,k 为  > 1 的系数,c 为常数)

    • 图(b)是 二阶巴特沃兹高通滤波器 的效果图,但是由于高通滤波器保持低频分量不变, 增强高频分量,所以图像整体亮度并没有改善,而模糊地显示了图像的主要边缘;
    • 图(c)是 高频强调滤波器 的效果图,由于高频强调滤波器使得低频和高频分量同时增强,所以图像的亮度有所改善,边缘也模糊可见。但是图像的整体亮度和对比度还不是很高,导致图像视觉效果不好;
    • 图(d)是 高频强调滤波 后执行 直方图均衡化 的结果图,可以明显看到图像的亮度和对比度有了很大的改善,清楚地看到其他的细节。

    4.2.3. 带通滤波器(band-pass filter)

    可以看做是由高通和低通滤波器协同作用的结果,高通和低通滤波器的截止频率可作为通带的下限频率和上限频率(图3中的L和U点)。其主要参数是中心频率和带宽,上限频率和下限频率之差就是滤波器的带宽。

    在分析噪声的频谱特征或主要频率成分时,常以一组相互衔接的带通滤波器将整个音频范围划分成若干个通带。通带的划分可以采用等带宽、等百分比、等比划分等几种形式。

    峰值滤波器

    峰值滤波器与陷波滤波器恰好相反,峰值滤波器是带通滤波器的一种,其通道很窄。常常用于保留固定频率分量或通道很窄的地方。

    4.2.4. 带阻滤波器(band-stop filters,BSF)

    指能通过大多数频率分量、但将某些范围的频率分量衰减到极低水平的滤波器,与带通滤波器的概念相对。其中陷波滤波器(notch filter)是一种特殊的带阻滤波器,它的阻带范围极小。

    常见的集中滤波器的对比:巴特沃斯、切比雪夫、贝塞尔滤波器的区别

    陷波滤波器(notch filter)

    陷波滤波器是带阻滤波器的一种,其阻带很窄,因此也称点阻滤波器。常常用于去除固定频率分量或阻带很窄的地方。如用于去除直流分量,去除某些特定频率分量。

    一个理想的陷波滤波器的频率响应特点是:要在消除的信号频率点其值等于零,而在其他频率处其值不为零且要等于1。

    4.2.5. 同态滤波器

    在图像处理中,常常遇到动态范围很大(黑的很黑,白的很白)但是暗区的细节又不清楚的现象,我们希望增强暗区细节的同时不损失亮区细节。

    • 使用灰度级扩展提高反差,图像动态范围进一步加大。
    • 压缩灰度级,动态范围变小,但是细节更加无法分辨。

    此时需要将频率过滤与灰度变换结合起来——同态滤波。

    理论说明

    同态滤波处理的基本流程如下(该方法只针对灰度图像):

    S(x,y) -> Log -> DFT -> 频域滤波 -> IDFT -> Exp -> T(x,y)

    图像是根据 照度 / 反射率 模型组成的(举个例子,比方你望去窗外,太阳光照射所有物体的光几乎是一致的。但呈现出的不同细节等是由花草房子之类的反射率决定的)。

    • 照度:太阳光或者其他光源,一般变化较小,为低频。
    • 反射率:由物体表面材质决定,变化大,为高频。

    那么:

    • 减弱入射光 i(x,y)可以缩小灰度范围。
    • 怎强反射光 r(x,y)可以提高图像对比度。

    过程:

    这样同态滤波器就自动的对低频的入射光进行虚弱,降低动态范围。对高频进行增强,提高对比度。

    5. 彩色图像处理

    • 描述彩色光源 3 个量:
      • 辐射量:从光源流出的能量总量。
      • 光通量:观察者从光源感受到的能量。
      • 亮度:主观的描述,与颜色无关,仅仅为强度。
    • 人类对红绿蓝颜色最敏感,从而构成三基色假说,也称之为三原色。
    • 三基色假说:三基色是一组正交基。就是说,它们相互独立,其中任何一种颜色都不能由另外两种混合而成。而其他所有颜色可由三基色按一定比例混合得到。

    CIE色度图

    • x 轴:红色,y 轴:绿色,蓝色: 1 - x - y;
    • 边界上为全饱和的纯色,内部为混合色
    • 等能量点:CIE 白光标准,x = y = 1 - x - y,饱和度为 0
    • 任意 2 点的线段,都可以由线段两端的颜色混合而成。任意 3 点组成的三角形内的颜色,都可以由 3 个端点颜色混合而成。
    • 等能量点到边界任意点的连线,可以定义特定色谱的所有色调。
    • 该图的三原色不是固定的。

    色彩模型

    1、RGB 彩色模型

    像素深度:每个像素所用 bits 数。
    
    若每个颜色用8bit,则像素深度为24,表示的颜色有 2^24 种
    

    2、HSI 彩色模型

    这是从人对色彩的感知角度建立的彩色模型。
    
    * H(Hue)色调:观察者接受的主要颜色。
    * S(Saturation)饱和度:纯色背白光稀释的程度。
    * I(Intensity)亮度:色彩的明亮度,主观指标。
    

    两种彩色模型利弊:

    • RGB 适合图像生成,HSI 适合图像描述。
    • HSI 更加能够反映色彩本质,被广泛应用于计算机视觉、图像视频检索等领域。

    5.1. 伪彩色图像处理

    根据一定的准则对灰度值赋予彩色的处理,方法就是确定灰度值与彩色的映射关系。

    • 强度分层技术

      不同灰度值的图像用不同颜色。

    • 灰度级到彩色的转换

      不同的灰度值,分别确定 RGB 值,最后合成为彩色。

    5.2. 全彩色图像处理

    • 分别处理 RGB 分量图像,最后合成。
    • 直接对每个像素的 RGB 进行处理。

    5.3. 色彩变换

    补色:色环上对面的颜色。

    色彩分离:突出图像中特殊彩色的区域。

    以球形为例:给定一个颜色向量(r,g,b),任何颜色(x,y,z)两者欧式距离平方小于给定距离时,则保留。

    6. 图像的复原与重建

    图像退化: 图像在产生、存储、传输过程中,由于设备等的不完善使得图像质量损坏

    图像复原: 在图像退化模型的基础上,根据先验知识建立退化模型,再进行反运算恢复原始图像

    6.1. 噪声模型

    使用概率密度函数进行描述。

    6.1.1. 模型分类

    高斯噪声

    高斯噪声的产生源于电子电路噪声和由低照明度或高温带来的传感器噪声。高斯噪声数学上易于处理,实践中经常使用。

    瑞利噪声

    伽马噪声

    均匀分布噪声

    脉冲噪声(椒盐噪声)

    周期噪声

    6.1.2. 一些噪声的灰度直方图

    6.1.3. 案例

    分析:取一块变化很小的地方,绘制直方图——发现是高斯噪声模型。

    6.2. 噪声滤除

    处理加性噪声(高斯噪声、均匀分布噪声)——空域滤波

    6.2.1. 算数均值滤波

    6.2.2. 几何均值滤波

    优点:几何均值滤波图像细节保留更多,平滑程度和算术差不多。

    6.2.3. 谐波均值滤波

    处理 “盐” 噪声效果较好,不适用于 “椒” 噪声。

    6.2.4. 逆谐波均值滤波

    滤波器阶数:

    • Q > 0 处理 “椒” 噪声
    • Q == 0 为算术均值滤波
    • Q <0 处理 “盐” 噪声(Q == -1,为谐波均值滤波)

    6.2.5. 统计排序滤波器

    • 中值滤波器: 相同尺寸下,比均值滤波器引起的模糊小。处理脉冲噪声很有效。但多次使用会模糊图像。
    • 最大值滤波器: 处理 “椒” 噪声效果好,但会从黑色物体边缘移走一些黑色色素。
    • 最小值滤波器: 处理 “盐” 噪声效果好,但会从白色物体边缘移走一些白色色素。
    • 中点滤波器: 计算滤波模版内最大值最小值的算术平均,即为中点值。处理高斯和均匀噪声效果最好

    6.2.6. 自适应滤波器

    可根据当前处理的像素信息,自行确定修复强度。

    效果:

    6.2.7. 自适应中值滤波

    在模版内找中值,中值不是脉冲,则看中心值 Zxy 是不是脉冲。中心值 Zxy 是脉冲,则用中值代替。不是脉冲,则中心 Zxy 不变(优点:保存原有样子)。

    如果模版已经扩展到最大了,中值还是脉冲,则输出中值。

    6.2.8. 逆滤波

    需要先验知识,知道是什么情况的退化模型。但是噪声仍然是随机的,无法确定。所以,一般用于信噪比高的的图像复原问题。

    如果 H(u,v) 取非常小的值的时候,原图像被破坏,这时候要认为干预,只在原点周围有限区域做逆滤波。

  • 相关阅读:
    Java里if...else语句
    Java里for循环和增强版循环;break语句:跳出循环;continue:跳转循环
    Java里while循环和do...while循环
    static 修饰符
    Java类变量(静态变量)
    Java实例变量
    Java局部变量
    Java访问实例变量和调用成员方法
    Java里import语句使用
    声明式服务调用
  • 原文地址:https://www.cnblogs.com/brt2/p/13031758.html
Copyright © 2011-2022 走看看