图像处理知识点

对比度、亮度、饱和度

对于一张数字图像来说,将灰度跨越的值域称为动态范围。图像系统的动态范围定义为系统中最大可度量灰度与最小可检测灰度之比,上限取决于饱和度,下限取决于噪声。基本上,动态范围由系统能表示的最低和最高灰度级来确定,因此也是图像具有的动态范围。与这一概念紧密联系的是图像对比度。对比度就是一幅图像中最高和最低灰度级间的灰度差,当一幅图像中像素的数值有高的动态范围时,认为该图像具有高的对比度。亮度就是像素值

8 bit 图像的解释

当一幅图像有 2 k 2^k 2k 个灰度级时,实际上通常称该图像为一幅"k 比特图像"。这跟图像的宽高没有关系。8 bit图像中每个像素点都是用的 8 位二进制数存的。

空间分辨率和灰度分辨率

  • 空间分辨率:图像中可以辨别的最小细节的度量,或者说空间分辨率是指图像中可辨认的临界物体空间几何长度的最小极限,即对细微结构的分辨率。是每英寸图像内,有多少个像素, 分辨率单位为:横向像素点 x 纵向像素点, 屏幕像素密度单位为PPI(Pixels Per Inch),通常叫做:像素每英寸。屏幕像素密度,分辨率,屏幕尺寸的关系如下:
    图像处理知识点_第1张图片

(1)分辨率和屏幕尺寸的关系?
首先屏幕尺寸可以认为是由一个个最小的单位像素块来表示的,比如下面这张图.。
图像处理知识点_第2张图片
所以分辨率 1024 × \times × 768 的意思即是在竖向的高度上有1024个像素块,在横向的宽度上有768个像素块,如果屏幕尺寸为 5.7英寸的时候,就说明这个5.7英寸的屏幕上,竖向的高度上有1024个像素块,在横向的宽度上有768个像素块。如果屏幕尺寸为 15.6英寸的时候,就说明就说明这个 15.6 英寸的屏幕上,竖向的高度上有1024个像素块,在横向的宽度上有 768 个像素块。所以分辨率和尺寸之间其实是没什么关系的,就是指在这个尺寸下塞下了多少个像素块,像素块越多表示画面越细腻。比如我们看电视的时候如果用 50 寸的屏幕显示 1920 × \times × 1080 的图像和用 70 寸的屏幕全屏显示1920 × \times × 1080 的图像会发现 70英寸的屏幕的颗粒感会强很多。所以,屏幕尺寸一样大的2k的屏幕和1080p的,差距就在2k的屏幕像素块多,也就是每英寸可显示的像素点多,所以更清晰。

  • 灰度分辨率也叫幅度分辨率:是指在幅度值是离散的时候,每个像素都有一个对应的强度值,一般量化时采样8位的,也就是幅度分辨率为 256

图像内插

图像内插就是用已知数据来估计未知位置的数值的处理。在诸如放大、收缩、旋转和几何校正等任务中广泛应用的基本工具。也是一种基本的图像重取样的方法

  • 最近邻内插
    最近临插值算法优点是算法简单,易于实现,但是缺点是由于相邻像素点的像素值相同,容易出现色块现象。
    最近邻内插遵循以下公式:
    d s t X × ( s r c W i d t h d s t W i d t h ) = s r c X dstX \times (\frac{srcWidth} {dstWidth}) = srcX dstX×(dstWidthsrcWidth)=srcX
    d s t Y × ( s r c H e i g h t d s t H e i g h t ) = s r c Y dstY \times (\frac{srcHeight} {dstHeight}) = srcY dstY×(dstHeightsrcHeight)=srcY
    比如一张 3 × \times × 3 的图像需要放大为 4 × \times × 4的图像时,对于目标图的(0,3)位置处的像素,即第一行第四列的坐标的像素值:
    ( 0 × ( 3 / 4 ) , 3 × ( 3 / 4 ) ) = > ( 0 × 0.75 , 3 × 0.75 ) 四 舍 五 入 后 — — > ( 0 , 2 ) (0\times(3/4),3\times(3/4))=>(0\times0.75,3\times0.75)四舍五入后——>(0,2) (0×(3/4),3×(3/4))=>(0×0.75,3×0.75)>(0,2)
    即目标图的(0, 3)的像素值,等于源图像的(0, 2)的像素值。由目标图的坐标反推得到的源图的的坐标是一个浮点数的时候,采用了四舍五入的方法,直接采用了和这个浮点数最接近的象素的值。
    图像处理知识点_第3张图片

  • 双线性内插(并不是线性的内插):用 4 个最近邻的像素去估计给定位置的灰度。令 ( x , y ) (x, y) (x,y)为我们想要赋以灰度值的位置的坐标,并令 v ( x , y ) v(x, y) v(x,y)表示灰度值。对于双线性内插来说,赋值是由下面的公式得到的:
    v ( x , y ) = a x + b y + c x y + d v(x, y) = ax + by + cxy +d v(x,y)=ax+by+cxy+d
    其中,4 个系数可以用 ( x , y ) (x, y) (x,y) 最近邻的 4 个最近邻点确定。双线性插值虽然比最近邻插值效果好,但是带来了更多的计算量

  • 双三次内插

三种内插方法后的放大图像的清晰度排行:
双三次内插 > 双线性插值 >> 最近邻插值

图像集合空间变换

  • 仿射变换:仿射变换的一般形式如下:
    图像处理知识点_第4张图片
    仿射变换可根据矩阵 T 中元素所选择的值,对一组坐标点做尺度(即放缩)、旋转、平移或偏移。而且可以组合形成多个变换。
    图像处理知识点_第5张图片

图像配准 calibration

图像配准是数字图像处理的一种重要应用,用于对齐两幅或者多幅相同场景的图像。我们已经知道了将图像与一些仿射变换的矩阵相乘可以对图像做几何变换。在图像配准中,我们有可用的输入图像和输出图像,但是,从输入图像产生输出图像的特定变换通常是不知道的,此时问题就是估计变换函数,然后用它配准两幅图像。从图像配准的角度来讲,输入图像是我们希望变换的图像,而我们所谓的参考图像是我们想要配准输入图像的图像。

像素间的关系

4邻接、8邻接、m邻接
(1)邻域
某一坐标(x, y)处的像素 p 有 4 个水平和垂直的相邻像素,其坐标由下式给出:
( x + 1 , y ) , ( x − 1 , y ) , ( x , y − 1 ) , ( x , y + 1 ) (x + 1, y), (x - 1, y), (x, y - 1), (x, y + 1) (x+1,y),(x1,y),(x,y1),(x,y+1)
这组像素称为 p 的 4 邻域,用 N 4 ( p ) N_4(p) N4(p)表示。如果(x, y) 位于图像的边界上,则 p 的某些相邻像素位于数字图像的外部。

p 的 4 个对角相邻像素的坐标如下:
( x + 1 , y + 1 ) , ( x + 1 , y − 1 ) , ( x − 1 , y + 1 ) , ( x − 1 , y − 1 ) (x + 1, y + 1),(x + 1, y - 1), (x - 1, y + 1), (x - 1, y - 1) (x+1,y+1)(x+1,y1),(x1,y+1),(x1,y1)
这组像素用 N D ( p ) N_D(p) ND(p)表示,这 4 个点和 4 个邻点一起称为 p 的 8 邻域,用 N 8 ( p ) N_8(p) N8(p)表示。

2)4 邻接、 8 邻接、 m 邻接
邻接啥的都是要自己定义一个灰度值的,所以满足这个灰度值的位置才能有资格说邻接。所以该像素值的集合称为 V

  • 4 邻接:如果q和p的像素值都是集合V的元素,并且q在黄色区域,那么就说p和q是4邻接的。

在这里插入图片描述

  • 8 邻接:如果q和p的像素值都是集合V的元素,并且q在黄色区域,那么就说p和q是8邻接的。
    图像处理知识点_第6张图片
  • m 邻接:p和q是4邻接的 或者 p和q是8邻接且p的四邻域和q的四邻域的交集中没有 V 中的元素
  • 4 连通: 对于在像素点p的4邻域内的像素均与像素点p形成4连通
  • 8 连通: 对于在像素点p的8邻域内的像素均与像素点p形成8连通

像素间的距离度量

对于像素 p, q 和 z,他们的坐标分别为 (x, y), (s, t) 和 (v, w)。则 p 与 q 之间的距离有如下计算方法

  • 欧氏距离
    D e ( p , q ) = [ ( x − s ) 2 + ( y − t ) 2 ] 1 2 D_e(p, q) = [(x - s) ^ 2 + (y - t) ^2]^{ \frac{ 1 } { 2}} De(p,q)=[(xs)2+(yt)2]21
    这种情况下,距 ( x , y ) (x, y) (x,y)的距离 D e D_e De小于等于某个值 r 的像素形成一个中心在 ( x , y ) (x, y) (x,y) 且半径为 r r r 的圆平面。

  • 城区距离
    D 4 ( p , q ) = ∣ x − s ∣ + ∣ y − t ∣ D_4(p, q) = |x - s| + |y - t| D4(p,q)=xs+yt
    这种情况下,距 ( x , y ) (x, y) (x,y)的距离 D 4 D_4 D4小于等于某个值 r 的像素形成一个中心在 ( x , y ) (x, y) (x,y)的菱形。

  • 棋盘距离
    D 8 ( p , q ) = m a x ( ∣ x − s ∣ , ∣ y − t ∣ ) D_8(p, q) = max(|x - s|,|y - t|) D8(p,q)=max(xs,yt)
    这种情况下,距 ( x , y ) (x, y) (x,y)的距离 D 8 D_8 D8小于等于某个值 r 的像素形成一个中心在 ( x , y ) (x, y) (x,y)的方形。 D 8 = 1 D_8 = 1 D8=1的像素就是 ( x , y ) (x, y) (x,y)的 8 邻域。

灰度、像素、RGB之间的关系

灰度:灰度就是亮度,一般一个像素点的灰度用 8 bit来存储,也就是 256 个灰度,从 0-255 图像由黑色过渡到白色。
像素:像素是针对彩色图像来说的,如果是一副 2D 的图像,它记录了明亮信息,也就是灰度信息的话,那么这个图像的灰度值就是对应位置的像素值。对于彩色图像来说,它的像素点的灰度值就要经过RBG三个通道的映射函数得到,一般按照加权的方式得到灰度值:即R, G, B三个通道的加权为 3 : 6: 1。

彩色图像的形成过程,彩色图像如何变成灰度图像

三原色 R, G, B可以组合成任意我们想要的颜色,对于每个通道来说,可以认为是一个2D的灰度图。三个通道分别控制三种颜色的明暗,也就是三原色每个颜色的灰度都是 256 个,然后通过三种灰度的叠加从而使显像管显示不同的颜色。人为已经定好了 256 × \times × 256 × \times × 256 = 16 兆个色阶了,通过设置不同的三个通道的叠加从而使显像管显示不同的颜色。

彩色图像要变成灰度图像,只需要将三个通道的值设为相等就行了,比如 R = G = B = 0 就是个黑色的灰度图。

图像的空间域操作

空间域指图像平面本身,这类图像处理方法直接以图像中的像素操作为基础。而不把图像变换到其他变换域,在变换域操作完后在转换到空间域。空间域操作主要包括灰度变换和空间滤波两类

图像的灰度变换域空间滤波

灰度变换在单个图像的单个像素上操作,主要以对比度和阈值处理为目的。
空间滤波设计改善性能的操作,如通过图像中每一个像素的邻域处理来锐化图像。

一些基本的灰度变换函数

假设 r 和 s 分别代表变换前后的像素值
1、图像反转。可以得到灰度级范围为 [ 0 , L − 1 ] [0, L-1] [0,L1]的一幅图像的反转图像
s = L − 1 − r s = L - 1 - r s=L1r
反转一幅图像的灰度级,可得到等效的照片底片。
2、对数变换
对数变换得通用形式为:
s = c l o g ( 1 + r ) s = clog(1 + r) s=clog(1+r)
由下图对数曲线的形状看出,该变换将输入中范围较窄的低灰度值映射为输出中较宽范围的灰度值。对数变换可以扩展图像中的暗像素的值,同时压缩更高灰度级的值
图像处理知识点_第7张图片
3、幂律(伽马)变换
伽马变换的基本形式为:
s = c r γ s = cr^\gamma s=crγ
其中, c c c γ \gamma γ 为正的常数。又是考虑到偏移量,上式也写为 s = c ( r + ϵ ) γ s = c(r + \epsilon)^\gamma s=c(r+ϵ)γ
对于不同的 γ \gamma γ 值, s s s r r r 的关系曲线如下图所示:
图像处理知识点_第8张图片
与对数变换的情况类似,部分 γ \gamma γ 值的幂律曲线将较窄范围的暗色输入值映射为较宽范围的输出值,相反地,对于输入高灰度级值时也成立。然而,与对数函数不同的是,随着 γ \gamma γ值的变换,将简单地得到一簇可能的变换曲线, γ > 1 \gamma > 1 γ>1时生成的曲线和 γ < 1 \gamma < 1 γ<1时生成的曲线效果完全相反, γ = 1 \gamma = 1 γ=1 时成了恒等变换。
4、分段线性变换
主要应用:

  • 对比度拉伸:对于一些图像的灰度级动态范围太小导致情况,可以用分段线性变换来实现图像灰度级的拉伸。
    图像处理知识点_第9张图片
  • 灰度级分层:也就是将某一个范围内的灰度突出出来。
    图像处理知识点_第10张图片
  • 比特平面分层

直方图均衡化,直方图规定化

1、均衡化:当一幅图像的对比度比较小的时候,比如灰度范围聚集在坐标轴左边、右边、或者集中等情况是,就可以用直方图均衡化。直方图均衡化(Histogram Equalization)是一种增强图像对比度(Image Contrast)的方法,其主要思想是将一副图像的直方图分布通过累积分布函数变成近似均匀分布,从而增强图像的对比度。为了将原图像的亮度范围进行扩展, 需要一个映射函数, 将原图像的像素值均衡映射到新直方图中, 这个映射函数有两个条件:
(1)不能打乱原有的像素值大小顺序, 映射后亮、 暗的大小关系不能改变;
2)映射后必须在原有的范围内,即像素映射函数的值域应在0和255之间;
综合以上两个条件,累积分布函数是个好的选择,因为累积分布函数是单调增函数(控制大小关系),并且值域是0到1(控制越界问题),所以直方图均衡化中使用的是累积分布函数。

  • 均衡化的过程
    (1)依次扫描原始灰度图像的每一个像素,得到每个像素的灰度直方图
    2)计算灰度直方图的累计分布函数
    (3)根据累计分布函数和直方图均衡化原理得到输入和输出之间的映射关系
    (4)最后根据映射关系得到结果进行图像变换
    图像处理知识点_第11张图片
    均衡化可以用一个公式来表示:
    y = G ( x ) ⋅ x y = G(x) \cdot x y=G(x)x,其中 G ( x ) G(x) G(x)是映射函数,即累计分布函数。
  • 均衡化一般用的场景,暗图像(灰度聚集在坐标轴左边),亮图像(灰度聚集在坐标轴右边),低对比度的图像(灰度级的动态范围小),高对比度的图像(灰度级的动态范围很大,布满整个坐标轴)
    图像处理知识点_第12张图片

2、直方图规定化:所谓直方图规定化,就是通过一个灰度映像函数,将原灰度直方图改造成所希望的直方图。 所以,直方图修正的关键就是灰度映像函数。 直方图规定化是用于产生处理后有特殊直方图的图像方法。理想情况下, 直方图均衡化实现了图像灰度的均衡分布,对提高图像对比度 、提升图像亮度具有明显的作用。 在实际应用中,有时并不需要图像的直方图具有整体的均匀分布,而 希望直方图与规定要求的直方图一致,这就是直方图规定化。它可以人为地改变原始图像直方图的形状,使其成为某个特定的形状,即增强特定灰度级分布范围内的图像。 图像直方图是图像处理中一种十分重要的分析工具,它描述了一幅图像的灰度级内容。可以说,直方图均衡化是直方图规定化的一个特例。

3、局部直方图均衡
有时候不需要对整个图片做直方图均衡,可以采用局部直方图均衡的方法。

图像滤波

几种滤波方法

线性滤波

(1)高斯滤波
高斯滤波是最常用的图像去噪方法之一,它能很好地滤除掉图像中随机出现的高斯噪声,但是高斯滤波是一种低通滤波(可以看看高斯滤波核的频率响应图),它在滤除图像中噪声信号的同时,也会对图像中的边缘信息进行平滑,表现出来的结果就是图像变得模糊。高斯滤波之所以会导致图像变得模糊,是因为它在滤波过程中只关注了位置信息

高斯滤波会导致图像变得模糊,是因为它在滤波过程中只关注了位置信息,在滤波窗口内,距离中心点越近的点的权重越大;这种只关注距离的思想在某些情况下是可行的,例如在平坦的区域,距离越近的区域其像素分布也越相近,自然地,这些点的像素值对滤波中心点的像素值更有参考价值。但是在像素值出现跃变的边缘区域,这种方法会适得其反,损失掉有用的边缘信息。此时就出现了一类算法——边缘保护滤波方法,双边滤波就是最常用的边缘保护滤波方法。双边滤波的思想很简单,在高斯滤波的基础上加入了像素值权重项,也就是说既要考虑距离因素,也要考虑像素值差异的影响
2均值滤波

非线性滤波

(3)双边滤波
参考:双边滤波
双边滤波是一种非线性滤波器,它可以达到保持边缘、降噪平滑的效果。和其他滤波原理一样,双边滤波也是采用加权平均的方法,用周边像素亮度值的加权平均代表某个像素的强度,所用的加权平均基于高斯分布

(4)中值滤波

(5)最大最小滤波

空间滤波:滤波就是要模糊(平滑)一幅图像,图像滤波即在尽量保留图像细节特征的条件下对目标图像的噪声进行抑制

1、空间滤波机理:空间滤波器是由(1)一个邻域(典型地是一个较小的矩形),(2)对该邻域包围的图像像素执行的预定义操作组成。滤波产生一个新像素,新像素的坐标等于邻域中心的坐标,像素的值是滤波操作的结果。如果在图像像素上执行的是线性操作,则该滤波器称为线性空间滤波器。否则,滤波器就被称为非线性空间滤波器

线性滤波

R = w 1 z 1 + w 2 z 2 + . . . + w m n z m n = ∑ k = 1 m n w k z k = w T z R=w_1z_1 + w_2z_2 + ... + w_{mn}z_{mn}=\sum_{k=1}^{mn}\bf{w}_kz_k=\bf{w}^Tz R=w1z1+w2z2+...+wmnzmn=k=1mnwkzk=wTz
m , n m, n m,n表示一个 m × n m \times n m×n的模板。
注意:滤波前后图像的大小并没有改变,不要和深度学习的卷积搞乱。

均值滤波器

均值滤波器也叫平滑线性滤波器,它的输出是包含在滤波器模板领域内的像素的简单平均值。均值滤波器是用模板确定的邻域内像素的平均灰度值代替图像中每个像素的值,这种处理的结果降低了图像灰度的"尖锐"变化(不能起到锐化作用)。由于典型的随机噪声由灰度级的急剧变化组成,因此常见的平滑处理应用就是降低随机噪声。然而,由于图像边缘也是由图像灰度尖锐变化带来的特性,所以均值滤波处理存在不希望有的边缘模糊的负面效应,或者可以说线性滤波器都存在边缘模糊的现象。

非线性滤波

中值滤波:将像素邻域内灰度的中值代替该位置的像素值

中值滤波是一种非线性空间滤波器,这种滤波器的响应以滤波器包围的图像区域中所含的像素的排序为基础,然后使用统计排序结果决定的值代替中心像素的值。中值滤波相比相同尺寸的线性平滑滤波器的模糊程度明显要低。而且中值滤波器对处理脉冲噪声(椒盐噪声)非常有效,因为这种噪声是以黑白点的形式叠加在图像上的。

图像的锐化和锐化空间滤波器

1、图像锐化(image sharpening)是补偿图像的轮廓,增强图像的边缘及灰度跳变的部分,使图像变得清晰,分为空间域处理和频域处理两类。图像锐化是为了突出图像上的物的边缘、轮廓,或某些线性目标要素的特征。这种滤波方法提高了地物边缘与周围像元之间的反差,因此也被称为边缘增强。
2、锐化其实就是突出边缘让图像更清晰,滤波(模糊)其实是让图像更模糊,因为减弱了灰度差,所以锐化其实和滤波是相反的作用。滤波的均值处理与积分过程类似,所以锐化可以通过空间微分来实现
3、锐化可以通过空间微分来实现,所以可以由数字微分来定义和实现锐化算子的各种方法,基本上,微分算子的响应强度与图像再用算子操作的这一点的突变程度成正比,这样,图像微分增强边缘和其他突变(如噪声),而削弱灰度变换缓慢的区域
4、图像锐化首先要找到边缘,一般来说图像的边缘的灰度类似于斜坡过渡的图像,如果用一阶微分就会产生较粗的边缘,因为沿着斜坡的微分非 0 , 另一方面,二阶微分产生由 0 分开的一个像素宽的双边缘。因此二阶微分在增强细节方面要比一阶微分好很多,所以一般用二阶微分来进行图像的锐化。(这部分的证明在冈萨雷斯第三版的98~99页)

5、使用二阶微分进行图像的锐化—拉普拉斯算子
一个连续的二维函数的拉普拉斯算子定义为
∇ 2 f = ∂ 2 f ∂ x 2 + ∂ 2 f ∂ y 2 \nabla^2f = \frac{\partial^2f }{\partial x^2}+ \frac{\partial^2f }{\partial y^2} 2f=x22f+y22f
因为任意阶微分都是线性操作,所以拉普拉斯变换也是一个线性算子。使用离散形式描述这一公式且同时支持两个变量的计算时的离散拉普拉斯算子是:
∇ 2 f ( x , y ) = f ( x + 1 , y ) + f ( x − 1 , y ) + f ( x , y + 1 ) + f ( x , y − 1 ) − 4 f ( x , y ) \nabla^2f(x, y) =f(x+1, y) + f(x-1, y) + f(x, y+1) + f(x, y - 1) - 4f(x, y) 2f(x,y)=f(x+1,y)+f(x1,y)+f(x,y+1)+f(x,y1)4f(x,y)(推导过程见离散拉普拉斯算子与LOG推导)
这个公式可以用下图的模板来实现
图像处理知识点_第13张图片
6、使用一阶微分(非线性)对图像锐化 — 梯度
图像处理中一阶微分使用梯度赋值来实现的。对于函数 f ( x , y ) f(x, y) f(x,y), f 在坐标 ( x , y ) (x, y) (x,y)处的梯度定义为二维向量
∇ 2 f ( x , y ) ≡ g r a d ( f ) ≡ [ g x g y ] = [ ∂ f ∂ x ∂ f ∂ y ] \nabla^2f(x, y) \equiv grad(f) \equiv \begin{bmatrix}g_x \\g_y \end{bmatrix}=\begin{bmatrix}\frac{\partial f}{\partial x} \\\frac{\partial f}{\partial y} \end{bmatrix} 2f(x,y)grad(f)[gxgy]=[xfyf]
该向量具有重要的几何特性,即它指出了在位置(x, y)处 f 的最大变化率的方向。
方向 ∇ f \nabla f f的幅度值(长度)表示为 M ( x , y ) M(x, y) M(x,y),即
M ( x , y ) = m a g ( ∇ f ) = g x 2 + g y 2 M(x, y) = mag(\nabla f)=\sqrt{g_x^2 + g_y^2} M(x,y)=mag(f)=gx2+gy2
它是梯度向量方向变化率在(x, y)处的值,反映的是在其最大变化率方向上的单位距离所增加的量。 M ( x , y ) M(x, y) M(x,y) 是和原图像大小相同的图像,只是它里面的值都是梯度值,所以该图像也通常称为梯度图像。因为梯度向量的分量是微分,所以他们是线性算子,然而,该向量的幅度不是线性算子,因为求幅度是做平方和平方根的操作。

图像的边缘检测

深入浅出各种边缘检测算子及其推导
边缘检测是图像处理和计算机视觉中的基本问题,边缘检测的目的是标识数字图像中亮度变化明显的点。图像属性中的显著变化通常反映了属性的重要事件和变化。图像边缘检测大幅度地减少了数据量,并且剔除了可以认为不相关的信息,保留了图像重要的结构属性。边缘检测的算子,边缘检测和锐化操作很相关,锐化一般采用差分方式,所以边缘检测算子基本都是差分方式,只是一阶还是二阶的问题
一阶微分算子
(1)Roberts:Roberts算子是一种利用局部差分算子寻找边缘的算子,它采用对角线方向相邻两象素之差近似梯度幅值检测边缘。没有经过图像平滑处理的,因此图像噪声一般得不到很好的抑制。Roberts 算子对具有陡峭的低噪声图像的定位精度较高。
图像处理知识点_第14张图片
2SobelSobel算子是典型的基于一阶导数的边缘检测算子,由于该算子中引入了类似局部平均的运算,因此对噪声具有平滑作用,能很好的消除噪声的影响。
图像处理知识点_第15张图片
通过上面算子结构可以很清楚发现,这个滤波器是计算当前像素点左边和右边 8 连通像素灰度值的差值。
直接用基本的边缘算子如Sobel求得的边缘图存在很多问题,如噪声污染没有被排除、边缘线太过于粗宽等。 而且Sobel算子距离中心点越近的像素点权重越大

(3)Prewitt: Prewitt算子是一种一阶微分算子的边缘检测,利用像素点上下、左右邻点的灰度差,在边缘处达到极值检测边缘,去掉部分伪边缘,对噪声具有平滑作用 。其原理是在图像空间利用两个方向模板与图像进行邻域卷积来完成的,这两个方向模板一个检测水平边缘,一个检测垂直边缘。
在这里插入图片描述

二阶微分算子
(4)LOG,高斯-拉普拉斯算子,也叫 Marr-Hildreth算子
LOG算子推导可以参考离散拉普拉斯算子与LOG推导
图像处理知识点_第16张图片
这个是包括拉普拉斯算子和高斯模糊的,Log边缘检测是先进行高斯滤波再进行拉普拉斯算子检测,然后找过零点来确定边缘位置,LoG 5 × \times × 5 模板如上图所示。

  • 问题:LoG 5 × \times × 5 模板如何得到?
    二维高斯公式是
    G ( x , y ) = 1 2 π σ 2 e x 2 + y 2 2 σ 2 G(x, y) = \frac{1}{2 \pi \sigma ^2}e^\frac{x^2 + y^2}{2 \sigma ^2} G(x,y)=2πσ21e2σ2x2+y2
    按照拉普拉斯算子公式求 x ,y 方向的二阶偏导后为:
    L o G ( x , y ) = − 1 π σ 4 [ 1 − x 2 + y 2 2 σ 2 ] e x 2 + y 2 2 σ 2 LoG(x, y)=-\frac{1}{\pi \sigma ^4} [1-\frac{x^2+y^2}{2 \sigma ^2}]e^\frac{x^2 + y^2}{2 \sigma ^2} LoG(x,y)=πσ41[12σ2x2+y2]e2σ2x2+y2
    这里,x,y不能看成模板位置,应该看成是模板其他位置到中心位置的距离。那么上式应该写成:
    L o G ( x , y ) = − 1 π σ 4 [ 1 − ( x − x 0 ) 2 + ( y − y 0 ) 2 2 σ 2 ] e ( x − x 0 ) 2 + ( y − y 0 ) 2 2 σ 2 LoG(x, y)=-\frac{1}{\pi \sigma ^4} [1-\frac{(x- x_0)^2+(y -y_0)^2}{2 \sigma ^2}]e^\frac{(x- x_0)^2 + (y -y_0)^2}{2 \sigma ^2} LoG(x,y)=πσ41[12σ2(xx0)2+(yy0)2]e2σ2(xx0)2+(yy0)2
    这里, x 0 , y 0 x_0,y_0 x0,y0就是模板中心位置, x , y x, y x,y是模板其他位置,对于 5 × 5 5 \times 5 5×5模板,则 x 0 = 2 , y 0 = 2 x_0 = 2,y_0 = 2 x0=2,y0=2,对于 ( 0 , 0 ) (0, 0) (0,0)位置的权值,即把 x = 0 , y = 0 , x 0 = 2 , y 0 = 2 x=0,y=0,x_0 = 2,y_0 = 2 x=0,y=0,x0=2,y0=2带入上式,另高斯公式的标准差 σ = 1 \sigma = 1 σ=1,得到约等于 0.0175,其他位置上的值也是同样得到,最后的值如下:
    [ 0.0175 0.0392 0.0431 0.0392 0.0175 0.0392 0 − 0.0965 0 0.0392 0.0431 − 0.0965 − 0.3183 0.0965 0.0431 0.0392 0 − 0.0965 0 0.0392 0.0175 0.0392 0.0431 0.0392 0.0175 ] \begin{bmatrix} 0.0175& 0.0392& 0.0431& 0.0392& 0.0175\\ 0.0392& 0& -0.0965& 0& 0.0392\\ 0.0431& -0.0965& -0.3183& 0.0965& 0.0431\\ 0.0392& 0& -0.0965& 0& 0.0392\\ 0.0175& 0.0392& 0.0431& 0.0392& 0.0175 \end{bmatrix} 0.01750.03920.04310.03920.01750.039200.096500.03920.04310.09650.31830.09650.04310.039200.096500.03920.01750.03920.04310.03920.0175

通过取整变符号(乘100),且模板总和为 0,得到上面所示的模板。

非微分边缘检测算子
(6)Canny
canny 边缘检测效果最好,但是计算量大,所示实时性差,一般用在高精度场景下。它的实现过程如下:

  • 彩色图像转灰度图像(彩色图像才有这一步)
    根据彩色图像RGB转灰度公式: g r a y = R ∗ 0.299 + G ∗ 0.587 + B ∗ 0.114 gray = R * 0.299 + G * 0.587 + B * 0.114 gray=R0.299+G0.587+B0.114
  • 对图像进行高斯模糊
    常见的高斯滤波器有如下:
    在这里插入图片描述高斯模糊的目的主要为了整体降低图像噪声,目的是为了下一步更准确计算图像梯度及边缘幅值。其实高斯滤波器很像一个金字塔结构,其滤波器的值大小我们可以理解为权重(weight),值越大对应的像素点权重越大,分量也就越大,因此从高斯滤波器我们可以看出对应当前像素点,距离越远权重越小,对灰度值的贡献也就越小
  • 计算梯度图像与角度图像
    计算梯度图像就是用各种边缘检测算子进行梯度的检测,计算图像梯度可以选择算子有Robot算子、Sobel算子、Prewitt算子等。
    下例采用了简明的 2 × 2 2\times 2 2×2的算子来求梯度,数学表达如下:
    在这里插入图片描述
    梯度图像用来求极大值,角度图像则为为非极大值一致的提供类别指导。
  • 用角度图像对梯度图像进行非极大值抑制
    从上一步得到的梯度图像存在边缘粗宽、弱边缘干扰等众多问题,现在我们可以使用非极大值抑制来寻找像素点局部最大值,将非极大值所对应的灰度值置0,这样可以剔除一大部分非边缘的像素点。非最大信号压制主要目的是实现边缘细化,通过该步处理边缘像素进一步减少
    做法为将角度分成若干个范围,角度图像落在相同角度范围内相应的的梯度图像属于同一个类别。然后假设为 3 × 3 3\times 3 3×3的像素区域,比较中心像素 P ( x , y ) P(x, y) P(x,y)和与其同角度的相邻两个像素的梯度大小,如果中心像素的梯度小于其中任意一个,则舍弃该中心像素,即将该中心像素的位置值 0,否则置 1
    图像处理知识点_第17张图片
  • 使用双阈值进行边缘连接
    经过以上三步之后得到的边缘质量已经很高了,但还是存在很多伪边缘,因此Canny算法中所采用的算法为双阈值法,具体思路为选取两个阈值,将边缘像素小于低阈值的点认为是假边缘置 0,将边缘像素大于高阈值的点认为是强边缘置 1,介于中间高阈值和低阈值之间的边缘像素点需进行进一步的检查,如果能通过边缘连接到一个像素大于TH而且边缘所有像素大于最小阈值TL的则置 1,否则置 0。
  • 结果二值化显示

各种边缘检测算子对比
图像处理知识点_第18张图片

图像处理中的各种噪声

(1)白噪声:白噪声是指功率谱密度在整个频域内均匀分布的噪声。 所有频率具有相同能量的随机噪声称为白噪声,换句话说,此信号在各个频段上的功率是一样的,由于白光是由各种频率(颜色)的单色光混合而成,因而此信号的这种具有平坦功率谱的性质被称作是“白色的”,此信号也因此被称作白噪声。相对的,其他不具有这一性质的噪声信号被称为有色噪声。而理想的白噪声具有无限带宽,因而其能量是无限大,这在现实世界是不可能存在的。
2)椒盐噪声
椒盐噪声:椒盐噪声又称脉冲噪声,它随机改变一些像素值,是由图像传感器,传输信道,解码处理等产生的黑白相间的亮暗点噪声。椒盐噪声往往由图像切割引起。
(3)高斯噪声
顾名思义,高斯噪声就是 n 维分布都服从高斯分布的噪声。然后说一下什么是高斯分布。
高斯分布,也称正态分布,又称常态分布。对于随机变量X,其概率密度函数如图所示。称其分布为高斯分布或正态分布,记为N( μ μ μ σ 2 σ^2 σ2),其中为分布的参数,分别为高斯分布的期望和方差。当有确定值时,p(x)也就确定了,特别当 μ = 0 μ=0 μ=0 σ 2 = 1 σ^2=1 σ2=1时,X的分布为标准正态分布。如果一个噪声,它的幅度分布服从高斯分布,而它的功率谱密度又是均匀分布的,则称它为高斯白噪声。高斯白噪声的二阶矩不相关,一阶矩为常数,是指先后信号在时间上的相关性,高斯白噪声包括热噪声和散粒噪声。

景深

图像的变换

  • 刚性变换:平移+旋转发生改变,而形状不变。
  • 投影变换:等距变换(旋转+平移)+缩放+切片+射影,射影变换保持重合关系和交比不变,但不会保持平行性。
  • 相似变换:等距变换(旋转+平移)+缩放,仍会保持平行性。
    -仿射变换:等距变换(旋转+平移)+缩放+切片+缩放,仿射变换保持二维图形的“平直性”和“平行性”,但是角度会改变。

图像的增强

灰度变换和空间滤波都是图像的增强方式,图像增强的主要目的是得到一幅具有较高视觉细节内容的图像。

SIFT特征:尺度不变特征变换匹配算法Scale Invariant Feature Transform

详解SIFT

SIFT算法可以分为四步

1、尺度空间极值点检测:搜索所有尺度上的图像位置。通过高斯微分函数来识别潜在的对于尺度和旋转不变的兴趣点
2关键点定位:在每个候选的位置上,通过一个拟合精细的模型来确定位置和尺度。关键点的选择依据于他们的稳定程度
3、方向确定:基于图像局部的梯度方向,分配给每个关键点位置一个或多个方向。所有后面的对图像数据的操作都相对于关键点的方向、尺度和位置进行变换,从而提供对于这些变换的不变性。
4、关键点描述:在每个关键点周围的邻域内,在选定的尺度上测量图像局部的梯度。这些梯度被变换成一种表示,这种表示允许比较大的局部形状的变形和光照变化。

尺度空间极值检测:高斯卷积核是实现尺度变换的唯一线性核

尺度空间(scale space)使用高斯金字塔表示。Tony Lindeberg指出尺度规范化的 LoG(Laplacion of Gaussian) 算子具有真正的尺度不变性,LOG算子的产生是对高斯函数进行拉普拉斯变换并进行规范化,计算量较大。SIFT就没有采用LOG,而是采用了DOG。 DOG 中的D(Difference)是指对连续两个尺度的高斯函数作差。通过公式推导可知,DOG可以看作是LOG的近似表示,因此也就具有了LOG的一些优秀性质,比如,稳定性好,抗噪能力强。同时,与LOG相比大大降低了计算量,因而可以看做是高效的斑点检测方法。
所以 Lowe 使用高斯差分(DOG)金字塔近似 LoG 算子,在尺度空间检测稳定的关键点。

高斯金字塔的构建

尺度空间在实现时使用高斯金字塔表示,高斯金字塔的构建分为两部分:
1、对图像做不同尺度的高斯模糊
2、对图像做降采样(隔点采样)
图像的金字塔模型是指,将原始图像不断降阶采样,得到一系列大小不一的图像,由大到小,从下到上构成的塔状模型。原图像为金子塔的第一层,每次降采样所得到的新图像为金字塔的一层(每层一张图像),每个金字塔共 n 层。金字塔的层数根据图像的原始大小和塔顶图像的大小共同决定,其计算公式如下:
在这里插入图片描述
其中M,N为原图像的大小, t 为塔顶图像的最小维数的对数值。如对于大小为512*512的图像,金字塔上各层图像的大小如表3.1所示,当塔顶图像为4 * 4时,n=7,当塔顶图像为2 * 2时,n=8。
在这里插入图片描述

空间极值点检测(关键点的初步探查)

关键点是由DOG空间的局部极值点组成的,关键点的初步探查是通过同一组内各DoG相邻两层图像之间比较完成的。为了寻找DoG函数的极值点(最大最小极值点),每一个像素点要和它所有的相邻点比较,看其是否比它的图像域和尺度域的相邻点大或者小。如下图所示,中间的检测点和它同尺度的8个相邻点和上下相邻尺度对应的9×2个点共26个点比较,以确保在尺度空间和二维图像空间都检测到极值点。
图像处理知识点_第19张图片
由于要在相邻尺度进行比较,如图3.3右侧每组含4层的高斯差分金子塔,只能在中间两层中进行两个尺度的极值点检测,其它尺度则只能在不同组中进行。为了在每组中检测 S 个尺度的极值点,则DOG金字塔每组需S+2层图像,而 DOG金字塔由 高斯金字塔 相邻两层相减得到,则高斯金字塔每组需S+3层图像,实际计算时S在3到5之间。

图像处理知识点_第20张图片

关键点定位

以上方法检测到的极值点是离散空间的极值点,以下通过拟合三维二次函数来精确确定关键点的位置和尺度,同时去除低对比度的关键点和不稳定的边缘响应点(因为DoG算子会产生较强的边缘响应),以增强匹配稳定性、提高抗噪声能力。

关键点的精确定位

离散空间的极值点并不是真正的极值点,下图显示了二维函数离散空间得到的极值点与连续空间极值点的差别。利用已知的离散空间点插值得到的连续空间极值点的方法叫做子像素插值。
图像处理知识点_第21张图片
为了提高关键点的稳定性,需要对尺度空间 DoG函数 进行曲线拟合。

消除边缘响应

一个定义不好的高斯差分算子的极值在横跨边缘的地方有较大的主曲率,而在垂直边缘的方向有较小的主曲率。DOG算子会产生较强的边缘响应,需要剔除不稳定的边缘响应点。获取特征点处的Hessian矩阵,

有限差分法求导

有限差分法以变量离散取值后对应的函数值来近似微分方程中独立变量的连续取值。在有限差分方法中,我们放弃了微分方程中独立变量可以取连续值的特征,而关注独立变量离散取值后对应的函数值。但是从原则上说,这种方法仍然可以达到任意满意的计算精度。因为方程的连续数值解可以通过减小独立变量离散取值的间格,或者通过离散点上的函数值插值计算来近似得到。这种方法是随着计算机的诞生和应用而发展起来的。其计算格式和程序的设计都比较直观和简单,因而,它在计算数学中使用广泛。

关键点方向匹配

为了使描述符具有旋转不变性,需要利用图像的局部特征为给每一个关键点分配一个基准方向。使用图像梯度的方法求取局部结构的稳定方向。对于在DOG金字塔中检测出的关键点点,采集其所在高斯金字塔图像3σ邻域窗口内像素的梯度和方向分布特征。

在完成关键点的梯度计算后,使用直方图统计邻域内像素的梯度和方向。梯度直方图将0~360度的方向范围分为36个柱(bins),其中每柱10度。如图5.1所示,直方图的峰值方向代表了关键点的主方向,(为简化,图中只画了八个方向的直方图)。
图像处理知识点_第22张图片
方向直方图的峰值则代表了该特征点处邻域梯度的方向,以直方图中最大值作为该关键点的主方向。为了增强匹配的鲁棒性,只保留峰值大于主方向峰值80%的方向作为该关键点的辅方向。因此,对于同一梯度值的多个峰值的关键点位置,在相同位置和尺度将会有多个关键点被创建但方向不同。仅有15%的关键点被赋予多个方向,但可以明显的提高关键点匹配的稳定性。实际编程实现中,就是把该关键点复制成多份关键点,并将方向值分别赋给这些复制后的关键点。至此,将检测出的含有位置、尺度和方向的关键点即是该图像的SIFT特征点。

HOG(方向梯度直方图 Histogram of Oriented Gradient, HOG)

HOG算法:

  • 首先对原始图像进行归一化处理,减少光照影响;
  • 一阶微分计算梯度幅值及梯度方向;
  • 将图像划分单元格(cells),分别计算各个单元格内的梯度方向直方图;
  • 对图像划分块(block),每个块中包含若干个单元格(可重叠),对每个块中的所有梯度方向直方图统一进行归一化处理;
  • 对所有梯度方向直方图生成特征向量。该特征向量即为待匹配的特征向量。之后的操作就是利用滑动窗口对当前图像依次进行匹配,利用分类算法将待匹配图像得到的特征向量进行分类,从而对图像中的行人进行检测。
关键点特征描述

通过以上步骤,对于每一个关键点,拥有三个信息:位置、尺度以及方向。接下来就是为每个关键点建立一个描述符,用一组向量将这个关键点描述出来,使其不随各种变化而改变,比如光照变化、视角变化等等。这个描述子不但包括关键点,也包含关键点周围对其有贡献的像素点,并且描述符应该有较高的独特性,以便于提高特征点正确匹配的概率。
SIFT描述子是关键点邻域高斯图像梯度统计结果的一种表示。通过对关键点周围图像区域分块,计算块内梯度直方图,生成具有独特性的向量,这个向量是该区域图像信息的一种抽象,具有唯一性。

SIFT的缺点

SIFT在图像的不变特征提取方面拥有无与伦比的优势,但并不完美,仍然存在:

  1. 实时性不高。
  2. 有时特征点较少。
  3. 对边缘光滑的目标无法准确提取特征点。等缺点,如下图7.1所示,对模糊的图像和边缘平滑的图像,检测出的特征点过少,对圆更是无能为力。近来不断有人改进,其中最著名的有SURF和CSIFT。
    图像处理知识点_第23张图片

数字图像处理与机器学习

数字图像处理

基本概念

1、马赫带(mach band):人眼在观察均匀黑区与白区形成的边界时,在亮度变化部位附近有暗区更暗,亮区更亮的感觉,更黑和更亮的带叫 mach 带。
2、人类视觉:使得人类得以感知和理解周边的世界
机器视觉:通过电子化感知和理解数字图像,来模拟人类视觉系统。

图像的感知与获取

图像的采样和量化

3、空间分辨率:衡量将模拟图像转化为数字图像的空间精度(采样),比如下面图中对图像进行量化时就是在对行和列划分栅格,栅格的大小表示的就是空间分辨率。
图像处理知识点_第24张图片
图像处理知识点_第25张图片
3.1 亮度分辨率(灰度分辨率):衡量图像亮度的量化精度(量化)。
图像处理知识点_第26张图片

图像存储与格式

1、数字图像文件存放在记忆卡上的格式、压缩方式。 BMP,JPEG,GIF,PNG…
1.1 BMP(BitMap) 格式
(1)采用位映射存储格式,与硬件设备无关
2)除了色彩分辨率可选以外,不采用其他任何压缩
(3)扫描格式是按从左到右,从下到上的顺序

1.2 JPEG(Joint Photographic Experts Group)格式
(1)采用有损压缩方式去除图像数据中的冗余信息
2)可以在获取极高的压缩率的同时保持图像质量

1.3 GIF(Graphics Interchange Format)格式
(1)一种连续色调的无损压缩格式,压缩率在50%左右
2)存储量相对小,成像清晰,适合于初期的互联网

1.4 PNG(Portable Network Graphics)格式
(1)便携式网络图像格式
2)存储量相对小,压缩比高

直方图

1、直方图的应用

  • 图像增强:直方图均衡化,直方图规定化
  • 图像分割:根据直方图获取分割阈值
    图像处理知识点_第27张图片

比如上面这幅图,可以对图像做二值化,然后将细胞给分割出来,所以需要一个二值化变换的阈值。

  • 图像分类:直方图对比
    图像处理知识点_第28张图片
    通过比较上面两幅图像的直方图,可以判断有没有人经过

图像增强:主要目的是得到一幅具有较高视觉细节内容的图像,使图像更适合于分析

1、图像增强:按照特定的需要突出或者取出图像中的某些信息
2、图像增强没有增加图像中的信息量,有可能还有损失
3、没有统一的客观评价标准,特定用途特定用法

4、空间域增强值改变了某点 x ( j , i ) x(j, i) x(j,i)的灰度,并没有改变 x ( j , i ) x(j, i) x(j,i)的位置
图像处理知识点_第29张图片

灰度变换(直接对图像中像素的灰度级进行操作)

1、灰度变换可以用
s = T [ r ] s = T[r] s=T[r]
来表示,其中 r / s r/s r/s表示输入/输出灰度级, T T T代表灰度变换函数,包括线性变换(线性函数),非线性变换(非线性函数)。
2、灰度变换主要有以下的方法:

  • 对数变换
  • 伽马变换(幂次变换)

3、灰度变换后的直方图变化是怎样的?
假设灰度变换公示为:
D B = f ( D A ) D_B = f(D_A) DB=f(DA)
另外, H A ( D ) H_A(D) HA(D) H B ( D ) H_B(D) HB(D)分别代表变换之前和变换之后的图像直方图,则灰度变换前后 H A ( D ) H_A(D) HA(D) H B ( D ) H_B(D) HB(D)的关系为:
H B ( D B ) = H A ( D A ) f ′ ( D A ) H_B(D_B)=\frac{H_A(D_A)}{f'(D_A)} HB(DB)=f(DA)HA(DA)
即灰度变换后图像直方图是变换前直方图与变换函数导数之比。

代数运算(直接对图像中像素的灰度级进行操作)

(1)加法运算
假设原始图像 f ( x , y ) f(x,y) f(x,y) 在传输或者获取过程中被若干噪声 n i ( x , y ) n_i(x, y) ni(x,y) 所污染,得到的被污染的图像用 g i ( x , y ) g_i(x, y) gi(x,y) 表示,则
g i ( x , y ) = f ( x , y ) + n i ( x , y ) , i = 1 , . . . , N g_i(x, y) = f(x, y) + n_i(x, y), i=1, ..., N gi(x,y)=f(x,y)+ni(x,y),i=1,...,N
假设噪声图像 n i ( x , y ) n_i(x, y) ni(x,y) 的均值为 0, 且互不相关。则 N 幅图像的均值:
∑ i = 1 N g i ( x , y ) N = N × f ( x , y ) N + ∑ i = 1 N n i ( x , y ) N = f ( x , y ) \frac{\sum_{i=1}^{N}{g_i(x,y)}}{N} = \frac{N \times f(x, y)}{N} + \frac{\sum_{i=1}^{N}{n_i(x,y)}}{N}=f(x, y) Ni=1Ngi(x,y)=NN×f(x,y)+Ni=1Nni(x,y)=f(x,y)
所以求多幅图像均值可以去除叠加的加性噪声。
2)减法运算
两幅图像相减 C ( x , y ) = A ( x , y ) − B ( x , y ) C(x,y)=A(x,y) - B(x, y) C(x,y)=A(x,y)B(x,y),可以用来分割特定区域和检测场景变化。
2.1) 分割特定区域
图像处理知识点_第30张图片
2.2)检测特定场景
图像处理知识点_第31张图片
(3)乘法运算
两幅图像相乘 C ( x , y ) = A ( x , y ) × B ( x , y ) C(x,y) = A(x, y) \times B(x,y) C(x,y)=A(x,y)×B(x,y)。主要应用是获取图像中特定的部分。
图像处理知识点_第32张图片
上面图像可以用一张 mask 图像和原始图像相乘,从而抠出 mask 区域。

空间域滤波(直接对图像中像素的灰度级进行操作)

1、低通滤波:图像平滑
低通滤波进行的都是图像的积分运算。
(1)均值滤波
2)高斯滤波
(3)中值滤波:抑制噪声、保留边缘,能有效去除脉冲噪声(椒盐噪声)
2、高通滤波:图像锐化(突出图像的细节特征、增强图像模糊的边界)
低通滤波进行的都是图像的微分运算。
图像处理知识点_第33张图片
平坦区(灰度不变区域)差分值为零。边缘(灰度变化区域)差分值为非零。将原始图像与图像边缘进行叠加就能起到图像图像锐化的目的。
图像处理知识点_第34张图片
那么图像梯度怎么求得?
(1)基于一阶差分的图像增强
梯度的模定义为: ∣ ▽ f ( x , y ) ∣ = [ G x 2 + G y 2 ] 1 2 |\bigtriangledown f(x,y)| = [G_x^2 + G_y^2]^\frac{1}{2} f(x,y)=[Gx2+Gy2]21
如果将其简化为: ∣ ▽ f ( x , y ) ∣ = ∣ G x ∣ + ∣ G y ∣ |\bigtriangledown f(x,y)| = |G_x| + |G_y| f(x,y)=Gx+Gy
这就是个 Robert 算子, Robert 算子就是交叉差分算法:
G x = f ( x + 1 , y + 1 ) − f ( x , y ) G_x = f(x + 1, y + 1) - f(x, y) Gx=f(x+1,y+1)f(x,y)
G y = f ( x , y + 1 ) − f ( x + 1 , y ) G_y = f(x, y + 1) - f(x + 1, y) Gy=f(x,y+1)f(x+1,y)
图像处理知识点_第35张图片
如果 G x G_x Gx G y G_y Gy 是取三个值相加相减,
G x = ( z 3 + z 6 + z 9 ) − ( z 1 + z 4 + z 7 ) G_x = (z_3 + z_6 + z_9) - (z_1 + z_4 + z_7) Gx=(z3+z6+z9)(z1+z4+z7)
G y = ( z 7 + z 8 + z 9 ) − ( z 1 + z 2 + z 3 ) G_y = (z_7 + z_8 + z_9) - (z_1 + z_2 + z_3) Gy=(z7+z8+z9)(z1+z2+z3)
这就是 Periwitt 算子
图像处理知识点_第36张图片
如果 G x G_x Gx G y G_y Gy 是取三个值相加相减,同时对中间值进行加权:
G x = ( z 3 + 2 × z 6 + z 9 ) − ( z 1 + 2 × z 4 + z 7 ) G_x = (z_3 + 2\times z_6 + z_9) - (z_1 + 2\times z_4 + z_7) Gx=(z3+2×z6+z9)(z1+2×z4+z7)
G y = ( z 7 + 2 × z 8 + z 9 ) − ( z 1 + 2 × z 2 + z 3 ) G_y = (z_7 + 2\times z_8 + z_9) - (z_1 + 2\times z_2 + z_3) Gy=(z7+2×z8+z9)(z1+2×z2+z3)
图像处理知识点_第37张图片
这就是 Sobel 算子。
2)基于二阶差分的图像增强
图像处理知识点_第38张图片
图像处理知识点_第39张图片
(3)一阶差分和二阶差分的区别
图像处理知识点_第40张图片
(4)上面的所有算子起到的都是高通滤波的作用
Laplace算子
由于加权很大,所以对噪声敏感;不能检测边缘的方向;可以利用零交叉性质进行边缘定位。
Sobel 算子 :对噪声的敏感度较低;可以检测边缘的方向;无法进行边缘的定位。
在这里插入图片描述
(5)二维离散傅里叶变换特性
时移性质,频移性质,卷积性质,
相关性质
图像处理知识点_第41张图片
图像处理知识点_第42张图片
分离性质
图像处理知识点_第43张图片
二维DFT可以通过一维DFT实现,而一维DFT可以用快速傅里叶变换FDFT实现。所以二维图像的DFT可以按照以下步骤来进行:
图像处理知识点_第44张图片

频域滤波(图像进行傅里叶变换等,对变换后的系数进行操作)

图像处理知识点_第45张图片
图像处理知识点_第46张图片
1、低通滤波器
低频成分通过,去除(衰减)高频成分。结果是:图像中尖锐的细节被平滑。
(1.1)理想低通滤波器
图像处理知识点_第47张图片
图像处理知识点_第48张图片
图像处理知识点_第49张图片
理性低通滤波器的振铃现象
图像处理知识点_第50张图片
图像处理知识点_第51张图片
(1.2)巴特沃斯滤波器
图像处理知识点_第52张图片
上图公式里的 n n n 是巴特沃斯滤波器的阶数。 n n n 越大越好,因为通带的衰减小,而阻带衰减大。
图像处理知识点_第53张图片
(1.3)高斯滤波器
在这里插入图片描述
图像处理知识点_第54张图片
高斯滤波器没有振铃现象,因为高斯函数 H ( u , v ) H(u,v) H(u,v)的傅里叶反变换和傅里叶变换还是一个高斯函数,也就是说 h ( x , y ) h(x, y) h(x,y)是没有震荡的,它不是抽样函数。

2、高通滤波器
2.1)理想高通滤波器
图像处理知识点_第55张图片
图像处理知识点_第56张图片
2.2)巴特沃斯高通滤波器
图像处理知识点_第57张图片
2.3)高斯高通滤波器
图像处理知识点_第58张图片
高斯高通滤波器滤波效果比理想高通和巴特沃斯高通更平滑

2.4)频域图像增强
图像处理知识点_第59张图片
3、频域滤波同态滤波
前面讲的高频滤波和低频滤波可以解决加性噪声的问题,无法消除乘性或者卷积性噪声。比如下面的图像无论是用高通还是低通都达不到我们想要的增强效果
图像处理知识点_第60张图片
同态滤波:
基于图像成像模型,在频域压缩灰度动态范围,增强对比度。

图像的成像模型: f ( x , y ) = I ( x , y ) × R ( x , y ) f(x, y) = I(x,y) \times R(x,y) f(x,y)=I(x,y)×R(x,y)
其中, I ( x , y ) I(x,y) I(x,y) 也叫照度分量, R ( x , y ) R(x,y) R(x,y) 也叫反射分量。
(1)人眼对图像亮度的响应具有类似于对数运算
I n f ( x , y ) = I n I ( x , y ) + I n R ( x , y ) In f(x, y) = In I(x,y) + In R(x,y) Inf(x,y)=InI(x,y)+InR(x,y)
(2)照度分量是在整个空间区域缓慢变化
(3)反射分量在物体间的交界处急剧变化(所以人眼才能看到边缘)
我们对成像模型的对数运算进行傅里叶变换,可得到
F ^ ( u , v ) = I ^ ( u , v ) + R ^ ( u , v ) \hat{F}(u,v) = \hat{I}(u, v) + \hat{R}(u, v) F^(u,v)=I^(u,v)+R^(u,v)
其中,由于照度分量是缓慢变化的, 所以 I ^ ( u , v ) \hat{I}(u, v) I^(u,v) 是低频分量;而反射分量是急剧变化的,所以 R ^ ( u , v ) \hat{R}(u, v) R^(u,v) 是高频分量。
图像处理知识点_第61张图片
所以如何设计 H ( u , v ) H(u,v) H(u,v) 才能更好地增强输入图像呢?
由于照度分量对应着低频分量,反射分量对应着高频成分。所以我们可以对低频成分进行压缩,因为它包含的是缓慢变化的;对高频成分进行增强(即突出边缘);同时对其他部分进行拉伸从而增强对比度。这样设置的滤波系统的频率响应 H ( u , v ) H(u,v) H(u,v)就可以抑制低频,压缩图像的动态范围;增强高频,加大了各部分间的对比度。
图像处理知识点_第62张图片
同态滤波效果图:
图像处理知识点_第63张图片
4、基于 Retinex 的滤波
图像处理知识点_第64张图片
图像处理知识点_第65张图片
图像处理知识点_第66张图片

形态学(morphology)处理

1、形态学:一般指生物学中研究动物和植物结构的一个分支
2、数学形态学:1964年,法国巴黎矿业学院马瑟荣等提出,建立在集合代数的基础上,用集合论方法定量描述目标几何结构的学科。
3、图像的数学形态学处理:以形态为基础对图像进行分析的数学工具,用一定形态的结构元素,度量和提取图像中的对应形状。从而达到对图像分析和识别的目的。

集合论

一、基本概念
1、集合论是研究集合的结构、运算及性质的一个数学分支
2、研究对象是由平面(或空间)上一些点组成的集,称为”点集“
3、点集可以是某些孤立的点,或是某曲线上或某区域内的所有点。
4、研究点集所包含的点的位置及数量关系方面的共同特征
5、定量描述物体几何结构
二、基本定义
1、交集、并集、补集、差集
2、集合平移
图像处理知识点_第67张图片
3、集合反射
图像处理知识点_第68张图片
三、膨胀(dilation)与腐蚀(erosion)
1、集合 A 与 B,A 被 B膨胀的定义为
A ⊕ B = { z ∣ ( B ^ ) z ∩ A ≠ ϕ } A \oplus B = \begin{Bmatrix} z|\left (\hat{B} \right ) _z \cap A \ne \phi \end{Bmatrix} AB={z(B^)zA=ϕ}
直观表达为对 B B B 的反射 B ^ \hat{B} B^ 进行平移,使之与 A 的交集不为空的点的集合
详情参考:形态学处理----膨胀与腐蚀
膨胀主要的应用是处理缺陷。
图像处理知识点_第69张图片

2、腐蚀(erosion)
集合 A 与 B,A 被 B膨胀的定义为,
A Θ B = { z ∣ ( B ) z ⊆ A } A\Theta B = \left \{z|(B)_z \subseteq A \right \} AΘB={z(B)zA}
即将 B B B 平移 z z z 之后, ( B ) z (B)_z (B)z 被包含在 A A A 的点的集合。
图像处理知识点_第70张图片
两个相同的形状做腐蚀最后的结果就是一个点。腐蚀最常用的就是消除毛刺。
在这里插入图片描述
2、膨胀和腐蚀的应用
图像处理知识点_第71张图片
使用腐蚀消除图像的细节部分,产生滤波器的作用。
3、二值图像的膨胀和腐蚀的实现
图像处理知识点_第72张图片
图像处理知识点_第73张图片
图像处理知识点_第74张图片
图像处理知识点_第75张图片

四、开运算和闭运算
开运算:先腐蚀在膨胀 A ∘ B = ( A Θ B ) ⊕ B A \circ B = (A \Theta B) \oplus B AB=(AΘB)B
图像处理知识点_第76张图片
开运算:
用来消除小物体、在纤细处分离物体,平滑较大物体的边界同时并不明显改变其面积。
图像处理知识点_第77张图片
闭运算:先膨胀在腐蚀 A ∙ B = [ A ⊕ ( − B ) ] ⊖ ( − B ) A \bullet B = [A \oplus (-B)] \ominus (-B) AB=[A(B)](B)
图像处理知识点_第78张图片
闭运算:
用来填充物体内细小的空洞,连接邻近物体,平滑其边界的同时并不明显改变其面积。
图像处理知识点_第79张图片
图像处理知识点_第80张图片
形态学处理应用:边界提取
图像处理知识点_第81张图片
识别物体形状

图像分割

图像分割方法:
(1)基于阈值的分割方法
图像处理知识点_第82张图片
图像处理知识点_第83张图片
阈值选取的三种方法:直方图技术、最小误差阈值法、最大方差阈值法。
<1> 直方图技术
图像处理知识点_第84张图片
图像处理知识点_第85张图片
<2> 最小误差阈值法
条件:目标及背景灰度分布概率密度函数分别为 p ( z ) , q ( z ) p(z), q(z) p(z),q(z),设目标占整体图像的比例为 θ \theta θ
以上条件下,整体图像的灰度概率密度为:
θ p ( z ) + ( 1 − θ ) q ( z ) \theta p(z) + (1-\theta) q(z) θp(z)+(1θ)q(z)
图像处理知识点_第86张图片
假设用阈值 t t t 来作为分割阈值时。目标被错分为背景的区域的概率为: P ( t ) = ∫ t + ∞ p ( z ) d z P(t) = \int_{t}^{+\infty } p(z)dz P(t)=t+p(z)dz, 背景被错分为目标的区域的概率为: Q ( t ) = ∫ − ∞ t q ( z ) d z Q(t) = \int_{- \infty }^{t} q(z)dz Q(t)=tq(z)dz。我们的目标是想使这两个概率最小:
即求:
m i n i m i z e ( θ P ( t ) + ( 1 − θ ) Q ( t ) ) minimize(\theta P(t) + (1-\theta)Q(t)) minimize(θP(t)+(1θ)Q(t))
对其求导得到:
d d t θ P ( t ) + ( 1 − θ ) Q ( t ) = 0 \frac{d}{dt}\theta P(t) + (1 - \theta)Q(t)=0 dtdθP(t)+(1θ)Q(t)=0
从而找到阈值 t t t

<3> 最大方差阈值法(大津(otsu)阈值法)
方法步骤如下:利用直方图选取初始阈值 → \rightarrow 阈值将图像像素分为两组 → \rightarrow 计算两组像素之间的方差 → \rightarrow 找到使方差最大时的阈值。
具体步骤:设图像的灰度级为 1 ∼ m 1 \sim m 1m, 灰度级 i i i 拥有的像素个数为 n i n_i ni,图像像素总数 N = ∑ i = 1 m n i N=\sum_{i=1}^{m}n_i N=i=1mni,灰度级 i i i 出现的概率 p i = n i N p_i = \frac{n_i}{N} pi=Nni,采用初始阈值 T T T, 将图像像素分为两组,记为
C 0 = 1 , 2 , . . . , T ; C 1 = T + 1 , . . . , m C_0 = {1,2,...,T};C_1 = {T+1, ... , m} C0=1,2,...,T;C1=T+1,...,m
C 0 C_0 C0的概率 w 0 = ∑ i = 1 T p i = w ( T ) w_0 = \sum_{i=1}^{T} p_i = w(T) w0=i=1Tpi=w(T);
C 1 C_1 C1 的概率 w 1 = ∑ i = T + 1 m p i = 1 − w 0 w_1 = \sum_{i=T+1}^{m} p_i = 1 - w_0 w1=i=T+1mpi=1w0;
C 0 C_0 C0 组的灰度均值为 μ 0 = ∑ i = 1 T i p i w o = μ ( T ) w ( T ) \mu_0 = \frac{\sum_{i=1}^{T}ip_i}{w_o}=\frac{\mu(T)}{w(T)} μ0=woi=1Tipi=w(T)μ(T);
C 1 C_1 C1 组的灰度均值为 μ 1 = ∑ i = T + 1 m i p i w 1 = μ − μ ( T ) 1 − w ( T ) \mu_1 = \frac{\sum_{i=T+1}^{m}ip_i}{w_1}=\frac{\mu - \mu(T)}{1 - w(T)} μ1=w1i=T+1mipi=1w(T)μμ(T);
则图像的平均灰度级 μ = w 0 μ 0 + w 1 μ 1 \mu = w_0\mu_0 + w_1\mu_1 μ=w0μ0+w1μ1;
两组之间的方差: δ 2 ( T ) = w 0 ( μ − μ 0 ) 2 + w 1 ( μ − μ 1 ) 2 \delta ^2(T)=w_0(\mu - \mu_0)^2 + w_1(\mu-\mu_1)^2 δ2(T)=w0(μμ0)2+w1(μμ1)2;
则我们要求的就是最大化方差,即
M a x i m i z e ( δ 2 ( T ) = w 0 ( μ − μ 0 ) 2 + w 1 ( μ − μ 1 ) 2 ) Maximize(\delta ^2(T)=w_0(\mu - \mu_0)^2 + w_1(\mu-\mu_1)^2) Maximize(δ2(T)=w0(μμ0)2+w1(μμ1)2)
从而得到阈值 T T T
大津阈值法没有假设条件,算法的可操作性强,不论直方图是否有双峰都能得到满意的结果,因此实际使用中非常广泛。

2)基于边缘的分割方法
在这里插入图片描述
图像处理知识点_第87张图片
图像处理知识点_第88张图片
图像处理知识点_第89张图片

图像处理知识点_第90张图片
图像处理知识点_第91张图片
基于边缘的图像分割存在的问题?
由于噪声、照明等产生边缘间断,使得一组像素难以完整形成边缘。
图像处理知识点_第92张图片
问题:边界点不连续
需要连接边界点,以构成完整的边界图像描述。
图像处理知识点_第93张图片
图像处理知识点_第94张图片
所以,如果在 x-y 平面上有若干个散点,那么在构成点数最多一条直线在参数平面上应该交点最多。
图像处理知识点_第95张图片
图像处理知识点_第96张图片
Hough变换的实现方式
以直线 y = a 1 x + b 1 y=a_1x+b_1 y=a1x+b1 为例,由于 a 1 a_1 a1 可能会无穷大,即直线可能是条垂线,所以为了避免这种情况,通常采用极坐标的形式,将直线 y = a 1 x + b 1 y=a_1x+b_1 y=a1x+b1 转换成 x c o s θ + y s i n θ = ρ xcos\theta + ysin\theta = \rho xcosθ+ysinθ=ρ。这样参数平面就变成了曲线 ( θ , ρ ) (\theta, \rho) (θ,ρ)
图像处理知识点_第97张图片
图像处理知识点_第98张图片
上图是正常直线,下图是参数空间,其中 0 ≤ θ ≤ 36 0 o 0 \le \theta \le 360^o 0θ360o。一般情况下不需要对所有角度进行搜索,因为已经有若干点了,所以可以使用已有的点集来预测大致的角度范围。
图像处理知识点_第99张图片
Hough变换可以检测直线或者曲线???
图像处理知识点_第100张图片
在这里插入图片描述
图像处理知识点_第101张图片
(3)基于区域的分割方法图像处理知识点_第102张图片
基于区域的分割方法主要是利用相似性(某个块东西的灰度值相同)。
图像处理知识点_第103张图片
区域生长法
图像处理知识点_第104张图片
图像处理知识点_第105张图片
图像处理知识点_第106张图片
如何确定种子像素?
人机交互式分割(医学图像)—人为给定一个种子像素、基于直方图粗分割结果
如何确定种子之间的相似性?
基于区域灰度差,。
图像处理知识点_第107张图片
基于区域灰度分布统计性质
图像处理知识点_第108张图片
图像处理知识点_第109张图片
区域分裂合并法
图像处理知识点_第110张图片
在这里插入图片描述
图像处理知识点_第111张图片

图像识别

你可能感兴趣的:(图像处理,图像处理)