数字图像处理复习(part3)

数字图像处理复习(part3)

前面提到了空间域变换,接下来开始频率域变换,然后各种滤波,最后还了解了彩色图像和压缩。进入最后的部分。

Chapter9 形态学图像处理

引入:为什么叫形态学呢?形态学是生物学的定义,用于处理动物和植物的形状和结构。
数学形态学mathematical morphology,MM
集合运算
映像 {w|w=-b, b∈B} ,翻转变换
平移 {c|c=a+z, a∈A},平移

子弹只要擦着你的皮,你就伤了,这就算hit了!
击中 hit,是结构元素(小)只要和大的块求交不为空就行
不击中 miss,是结构元素(小)只要和大的块求交为空

数字图像处理复习(part3)_第1张图片

膨胀和腐蚀(二值图像)

加号是膨胀,减号是腐蚀,好理解吧
膨胀 dilate,加长或变粗的操作,由一个称为结构元素的集合来控制。结构元素必须指明原点
A⊕B = { z | (B)z ∩ A ≠ ∅ },表示图像A用结构元素B膨胀
数字图像处理复习(part3)_第2张图片
一句话概括,只要击中了,就以这个点为中心,套上结构元素。
可用来补全残缺文字。(本来断了线,一变粗就连起来了)

结构元素的分解,提高计算效率。(数电知识,异或的结合律)
A⊕B = A⊕(B1⊕B2) = A⊕B1⊕B2
数字图像处理复习(part3)_第3张图片
matlab里有专门分解结构元素的函数

腐蚀 erode,收缩或细化的作用
A⊙B = {z|(B)z ∩ AC ≠ ∅ } 图像A用结构元素B腐蚀,是和A补集的运算
数字图像处理复习(part3)_第4张图片
数字图像处理复习(part3)_第5张图片
一句话概括:必须是包含关系,才可以把这个结构元素的中心的值给要了。

膨胀和腐蚀的组合运算

在这里插入图片描述
公式太难打了,直接上图…
开运算(把你们给分开):平滑对象轮廓,断开狭窄的连接,取消细小的突出部分。先腐蚀,再膨胀。
闭运算(把你们给连起来):将狭窄的缺口连接起来形成细长的弯口,填充比结构小的孔洞。先膨胀,再腐蚀。

开运算像中学老师,看见一点恋爱苗头就要扼杀在摇篮里,然后让两个人自己涨自己的。(主要目的是分开,所以叫“开运算”。好,就这么记吧)
闭运算像媒婆/丘比特,人家还犹犹豫豫呢就要把两个人连起来,然后把周围的干扰项踢开。

数字图像处理复习(part3)_第6张图片
正经点的理解方式:
开运算,是圆在图形的内部各种平移,最后取圆的部分作为结果。
闭运算:是圆在图形外部各种平移,取圆没有移动到的地方。

数字图像处理复习(part3)_第7张图片

开运算 去除指纹噪声,先去噪,再膨胀连接(上面噪音太多了,先把米掏干净再蒸)

击中击不中变换,hitmiss 需要结构元素组B =(B1, B2)
在这里插入图片描述
用来识别特定形状

给个例题加深理解,感觉题目出的很好!
数字图像处理复习(part3)_第8张图片
Step1:确定结构元素
数字图像处理复习(part3)_第9张图片
注意:B1和B2应该是互斥的,并集 正好是个正方形。

Step2:求B1求腐蚀
数字图像处理复习(part3)_第10张图片所以只有左边和下方的图形能够被包含,显示。

Step3:对AC求B2的腐蚀
数字图像处理复习(part3)_第11张图片取反了。看B2这个框能框住谁?这次左侧和右上的可以。
Step4:求交集。
数字图像处理复习(part3)_第12张图片
然后我们就找到想要的正方形的位置了!

matlab工具箱里还有很多东西,应用如 细化指纹、对图像物体进行骨骼化。

连通分量

基本概念:
N4( p ), ND( p ), N8( p )
4邻接,8邻接;
4连接,8连接;
数字图像处理复习(part3)_第13张图片
一张图搞定这些概念
第一行分别是4、D、8连接。D是指对角相邻元素
Diagonal adjoining
第二行:左图:p和q满足4、 8邻接。右图:p和q只满足8邻接。因为4邻接只能是上下左右
第三行:左图是4、 8邻接,右图是只满足8邻接(45度了)
。。。这一节看起来蛮有来扫雷连连看十滴水的感觉呢。。。
matlab中有标记连通分量的函数,分为4邻接和8邻接两种。
bwlabel(f, conn), f是图像(二值矩阵),conn是连接方式,4或8

形态学重构

重构变换涉及两幅图像和一个结构元素(原谅我没看懂这些概念)
标记marker,变换的初始状态
掩膜mask,变换的限制区域
结构元素,决定连接性,通常为ones(3,1)
用图片例子方便理解。掩膜mask,相当于最大可能给的范围
标记是初始,种子。
种子依靠结构元素的连接性,每次连接延伸一下。然后不停延伸,但一定不能超过掩膜的范围。
数字图像处理复习(part3)_第14张图片
应用

  • 由重构做开运算。因为传统开运算,恢复过程不是很精确,重构可以精确恢复
  • 填充孔洞:定义标记图像fm,
    在这里插入图片描述在这里插入图片描述
    matlab函数,g=imfill(f,‘holes’);
  • 清除边界对象: 定义标记图像fm。原图像做掩膜
    在这里插入图片描述在这里插入图片描述g=imclearborder(f,conn);

灰度图像的形态学

需要一个结构元素b
膨胀是在结构元素确定的邻域块中,选择原图像值f与结构元素的和的最大值。
腐蚀是在结构元素确定的邻域块中,选择原图像值f与结构元素的差的最小值。
膨胀 f⊕b,取最大值
(f⊕b)(x,y) = max{f(x-x’,y-y’) + b(x’,y’) | (x’,y’)∈Db}
当b(x,y)是平坦的,都为0时,(f⊕b)(x,y) = max{f(x-x’,y-y’)|(x’,y’)∈Db}

腐蚀 f⊙b,取最小值
(f⊙b)(x,y) = min{f(x+x’,y+y’) - b(x’,y’) | (x’,y’)∈Db}

重点应用:开运算/闭运算
过程
1扫描一个单行的灰度值。

  1. 开:去掉亮度高 但 持续范围比较短的部分
    去除比结构元素更小的亮度细节
  2. 闭:填充亮度低 但 持续范围比较短的部分
    去除比结构元素更小的暗色细节

2重复扫描完所有的行

顶帽、低帽
开运算可以用来补偿不均匀的亮度背景。比如一幅图片中,背景亮度不是一样的,这边亮那边暗,可能会使某些部分被错误弄成物体。
数字图像处理复习(part3)_第15张图片根据图像进行解释,从左到右,从上到下分别为abcde
a是原图
b是傻白甜,直接用阈值处理的图像。大的给1,小的给0,无情地把右下角那几颗香喷喷的米粒给无视了(说明我黑到没被认出来,不是我的原因,是背景的错!)
c对原图进行开运算。联想开运算的定义,是去掉局部较亮的部分。所以得到一个去掉比较亮的大米粒的背景板(这个背景板和原图的基本相同)
d原图减去开运算,把粉底揭掉,看看真面目
e对其进行二值化处理

颗粒分析,取不同大小的结构元素

灰度图像的重构
数字图像处理复习(part3)_第16张图片数字图像处理复习(part3)_第17张图片

其实跟顶帽的思想也差不多。都是减去背景,突出细节

Chapter11 图像分割

引入:把图像细分成各个区域和组成对象
难点:分割程度,分的太粗或太细都不好
思路:单色图像分割,基于图像亮度值的
不连续性:亮度突变(如边缘)
相似性:基于事先定义的规则

点、线、边缘的检测

  • 基于点检测模版:用模版w处理图像,并通过阈值T处理提取图像中孤立点。
    数字图像处理复习(part3)_第18张图片
  • 基于局部(邻域)亮度差:根据领域内亮度最大值和最小值之差是否超过阈值T,比点检测模版灵活。

线检测
基于四个线检测模版:
数字图像处理复习(part3)_第19张图片依次用四个模版处理图像得到g1、g2、g3、g4;
寻找各gi中超过阈值T的像素点集合。
为什么用4个模版?为了比较看谁的值最大,就最可能是哪条线?!

边缘检测

  • 使用edge函数的边缘检测
    基于亮度值的不连续性,找到图像亮度快速变化的地方。
    图像亮度一阶导数超过阈值的地方
    亮度的二阶导数有零交叉的地方
    数字图像处理复习(part3)_第20张图片sobel边缘检测器(老师强调了)
    在这里插入图片描述prewitt边缘检测器
    数字图像处理复习(part3)_第21张图片Roberts边缘检测器(易于硬件实现)
    数字图像处理复习(part3)_第22张图片
    今天做实验看到的大米图用的是[1 2; -1 -2]

LoG边缘检测器(Laplacian of a Gaussian)
数字图像处理复习(part3)_第23张图片这么怪的公式会考?(不会的吧。滑稽)

零交叉检测器,类似于LoG,但使用指定滤波函数,而非高斯
Canny边缘检测器,重点
比前几种好。基于边缘梯度方向的非极大值抑制;双阈值的滞后阈值处理。

  1. 高斯平滑
  2. 计算梯度幅度和方向。可以选用前几种算子。
    数字图像处理复习(part3)_第24张图片
  3. 根据角度对幅值进行非极大值抑制
    (沿着梯度方向)为了细化边缘。邻域中心与沿着其对应的梯度方向的两个像素相比,如果中心像素为最大值,保留。否则中心置零。
  4. 双阈值算法检测、连接边缘
    选取系数TH,TL。比例为2:1或3:1。
    小于底阈值不要,赋0;大于高阈值要,赋1或255;
    中间的点,采用8连通区域。在8邻域内,遇到大于高阈值的像素,接受,同样作为边缘点,赋1或255。

霍夫变换 线检测

引入:因为噪声、不均匀照明,使算法得到的边缘不连续,难以得到完整的边缘特性,所以需要把不完整的边缘组装成完整的边缘。Hough Transform
把(x,y)转换成(ρ,θ)
数字图像处理复习(part3)_第25张图片对于点x(xi, yi),经过其的所有直线对应(ρ, θ)平面内的一条正弦直线。但我好奇k怎么知道的呢?或许是把ρ计算出来当做已知吧,毕竟ρ用距离公式就能算啊…
在这里插入图片描述

阈值处理

全局阈值处理,首先选一个T,然后分成两组,计算两组的像素平均亮度值μ1和μ2
计算一个新阈值T=1/2(μ12),循环(统计均值,计算)。直到连续迭代中T的差比预先指定的参数T0小为止。
or ,利用人眼,挑个中位数
比如在pdf图像中,使文字更加清晰,提高对比度。

局部阈值处理
为什么呢?因为背景照明可能不均匀。
顶帽运算,属于局部阈值处理。顶帽运算是原图像与“开运算”的结果的差
在这里插入图片描述在这里插入图片描述
图像f0是f的形态学开运算,常数T0是对f0应用函数graythresh后的结果。

基于区域的分割

把R分成R1、R2、R3,…,Rn
要求是:所有的Ri,并集为R;每个Ri自身是连接区域;彼此交集为空;P(R i)=TRUE;
P(Ri∪Rj)=FALSE,对于任何邻接区域
第四第五条的意思是,一个区域内像素点必须满足某种谓词P的性质。

区域生长,根据预先定义的生长准则,把像素或子区域集合成较大区域。首先找“种子”,然后找邻居(指定的灰度级或颜色)。有点像掩膜标记的思路

区域分离与合并
先分离
然后合并任何满足P(Ri∪Rj)=TRUE的区域
不能再进行合并时,停止。

基于分水岭的分割

使用距离变换的分水岭分割二值图像
通常用背景像素距离前景像素的最近距离来代表相应背景像素的灰度。
D=bwdist(f)
L=watershed(f)
数字图像处理复习(part3)_第26张图片数字图像处理复习(part3)_第27张图片abcdefghi,挨个分析
1原图g
2补,反一下
3 使用了bwdist,让背景的1变零,然后黑色的地方,根据离背景1最近距离,来变成不同的正数
4补,反一下
5分水岭算法
6,图w,将L==0的那些纯黑边界找出来(目前看来,不够连续,离散)
7 原始图像g和图w的叠加
8 黑色线叠加在原始图像上,g&~w
9 xor(g,w),异或

数字图像处理复习(part3)_第28张图片
基于梯度的分水岭分割灰度图像
使用梯度作为地形数据
数字图像处理复习(part3)_第29张图片2 梯度图像,越亮的地方,变化越明显
4 平滑处理,ones(3,3)

基于标记区域的分水岭分割灰度图像
选择内部(前景)标记区域和外部(背景)标记区域,指导分水岭分割。
数字图像处理复习(part3)_第30张图片

Chapter11 表示与描述

嗯,感觉自己越来越不想写了。。。加油,最后一章,写完我也就算是复习了一遍啦!
引入,刚刚咱们完成了分割操作,接下来要对各区域进行形式化地表达和描述
对区域进行表示,涉及到两个基本选择:
1.形状特性焦点,用区域外部特征(区域的边界)表示区域
2.反射率特性焦点,用区域内部特征(组成区域的像素)表示区域

确定表示方案后,需要对区域进行描述

表示

Freeman链码
数字图像处理复习(part3)_第31张图片
链码通过一个指定长度和方向的直线段的连接序列来表示边界。
一般采用4或8个方向,正右方为0,然后逆时针转。
数字图像处理复习(part3)_第32张图片
数字图像处理复习(part3)_第33张图片
数字图像处理复习(part3)_第34张图片循环差分链码:用相邻链码的差代替链码
(2)10103322 ——>33133030
3,3,1,3,3,0,3,0(想象成向左转向右转)

多边形逼近,有点像老祖宗的求圆周率方法
基本思想:用最少的多边形线段,获取边界形状的本质。
两种方法:点合成法、点分裂法

  • 合成,merging:
    1沿着边界选两个相邻点对,计算首尾连接直线段与原始折线段的误差。
    2如果误差<阈值,去掉中间点,选择新点与下一个相邻点对,重复上一部;否则,存储点和线段,置误差为0,选被存储线段的终点为起点,重复1,2.
    当程序的第一个起点被遇到,程序结束

problem:顶点一般不对应于边界的拐点(如拐角)。因为新的线段知道超过误差的阈值才开始。

  • 边分裂 splitting
    1连接边界线段的两个端点(如果是封闭边界,连接最远点)
    2统计其他点到该线的距离,如果最大正交距离大于阈值,边界分成两段,最大值点为分成两端的公共顶点,重复1
    如果没有超过阈值的正交距离,结束。

最小周长多边形(MPP)的多边形近似
关键词:凸角(黑点)、凹角(白点)
数字图像处理复习(part3)_第35张图片1获取区域边界后,确定边界的凹顶点(白)和凸顶点(黑)。黑顶点就是边界的点,白顶点是边相邻但没有被填充的正方形的对角顶点。
2连接所有的凸黑顶点构成初始多边形,删除该多边形之外的白顶点边界和内部白顶点保留!!!
3用剩余的黑白顶点,连接构造多边形,删除所有凹(顺时针转,内角不是90°而是270°)的黑顶点,重复此步只到不再发生变换。
数字图像处理复习(part3)_第36张图片
标记,用一维函数表达边界,降维
最简单的方法是用极坐标思想
数字图像处理复习(part3)_第37张图片
problem:函数过分依赖于旋转和比例的变化
改进
旋转:

  • 选择离之心最远的点作为起点
  • 选择从质心到主轴最远的点作为起点
    比例变换:
    规范化normalization,使函数值总是分布在相同的值域里,比如[0, 1]
    数字图像处理复习(part3)_第38张图片边界线段
    把边界分解成片段,可以降低边界复杂度
    凸壳:任何集合s的凸壳H是包含S的最小凸集
    凸缺:集合的差H-S
    数字图像处理复习(part3)_第39张图片骨架,想要表示结构形状,把它削减成图形Graph,可以通过细化thiniing(别名,抽骨架 skeletonizing)来实现

MAT方法:R是一个区域,B为R的边界,对于R内的点p,找p在B上最近的点,如果p有多于一个最近的邻点,则属于R的中轴(骨架)。
数字图像处理复习(part3)_第40张图片

边界描述子

简单描述子,边界的长度,连接方式(4/8),边界的直径、长短轴、基本矩形、偏心率等
形状数,具有最小整数值的差分链码串。形状数的阶,定义为形状数中数字的个数。
生成形状数的步骤:
旋转边界坐标到长轴方向;从左上角开始,按顺时针方向写出链码串;求链码串的差分串;移位差分串,获得结果。
数字图像处理复习(part3)_第41张图片
傅里叶描述符 ,优点是使用复数作为描述符,对于旋转、平移、放缩等操作和起始点的选取不十分敏感。
统计矩,跟极坐标差不多,还是降维,旋转到坐标系
数字图像处理复习(part3)_第42张图片
区域描述符,matlab提供了很多纹理描述符
数字图像处理复习(part3)_第43张图片还有基于频域的方法,纹理的频谱度量。。。(俺真的搞不懂)
数字图像处理复习(part3)_第44张图片

不变矩,有些二维不变矩,对于平移、缩放、镜像、旋转不敏感。

主分量描述

像物理的坐标系变换。主分量是变化更大的量。又提到了特征值,特征向量。
数字图像处理复习(part3)_第45张图片

你可能感兴趣的:(数字图像处理复习(part3))