形态学图像处理
预备知识
由集合论运算到图像处理
Z为整数集合,每个网格的中心坐标是来自笛卡尔乘积Z2中的一对元素。
f(x,y)数字图像 f是为每对不同坐标(x,y)分配亮度值(实数集R)的映射
若R中元素也是整数,则该数字图像为一个二维函数,坐标与振幅(亮度)值均为整数。
令A为Z2中的一个集合,其中的元素是像素坐标(x,y)。若w=(x,y)是A的一个元素,则我们可以写为
同理,若w不是A的元素,则可以写为
满足特殊条件的像素坐标集合B
某集合中像素坐标不属于集合A,A的补集
并集、交集、差集(略)
基本集合运算
B的映像
点z对集合A的平移
二值图像,二值集合和逻辑运算符
膨胀和腐蚀
膨胀
膨胀在数学上定义为
满足交换律,但令第一个操作数为图像,第二个操作数为结构元素。
膨胀结果
结构元素的分解
膨胀满足结合律
一个结构元素B可以表示为两个结构元素B1和B2的膨胀
称B能够分解为B1和B2两个结构元素。
计算膨胀所需要的时间正比于结构元素中的非零像素的个数。
函数strel
se = strel(shape, parameters)
shape 指定形状,parameters 指定大小
函数strel以分解的形式产生结构元素。
腐蚀
A被B腐蚀是所有结构元素的原点位置(值为1)的集合,其中平移的B和A的背景并不叠加。
膨胀和腐蚀的组合
最常用:开运算、闭运算、击中或击不中变换
开运算和闭运算
开运算:先腐蚀,再膨胀;B在A内完全匹配的平移的并集。【作用】平滑对象的轮廓,断开狭窄的连接
C = imopen(A, B)
闭运算:先膨胀,再腐蚀;所有不与A重叠的B的平移的并集。【作用】平滑对象的轮廓,狭窄的缺口连接为细长的弯口,并填充比结构元素小的洞
C = imclose(A, B)
击中或击不中变换
A被B击中或击不中变换
C = bwhitmiss(A, B1, B2)
例如:
用B1腐蚀可以决定东西南北领域像素的前景像素位置,用B2腐蚀原图的补集可决定所有东北、东南、西南、西北领域像素的像素位置。
查找表
函数makelut
函数applylut
函数bwmorph
g = bwmorph(f, operation, n)
operation 指定期望操作,n 操作重复次数
细化:得到单个像素宽的线
函数endpoints
【作用】识别并删除端点
标注连接分量
连接分量又称为对象,单个前景像素和所有前景像素集合之间的重要部分。
定义:对于任意前景像素p,与其相连的所有前景像素的集合称为包含p的连接分量。
函数bwlabel
[L, num] = bwlabel(f, conn)
f 二值图像,conn 制定期望的连接。输出L 标记矩阵,num给出所找到的连接分量的总数。
4邻接:q属于N4§
8邻接:q属于N8§
p与q之间存在一条完全有前景像素组成的4连接路径,则这两个前景像素称为4连接。
若它们之间存在一条8连接路径,则称为8连接。
计算质心(略)
形态学重构
重构涉及到两幅图像和一个结构元素的形态学变换,即标记(marker),是变换的开始点。另一幅图像是掩膜(mask),用来约束变换过程。结构元素用于定义连接性。
由重构作开运算(用重构代替膨胀来做开运算)
使用结构元素B对f由重构做开运算的定义为
fe = imerode(f, one(51,1));
fobr = imreconstruct(fe, f); %IM = imreconstruct(MARKER,MASK)
填充孔洞
g = imfill(f, 'holes');
图像平移形式(结构元素)的并集(或交集)
清除边界对象
g = imclearborder(f, conn);
形态学概念扩展到灰度图像
开运算和闭运算
开运算去除比结构元素更小的明亮细节,闭运算去除比结构元素更小的暗色细节。
开-闭滤波、闭-开滤波:组合二者以平滑图像并去除噪声。
交替顺序滤波:用一系列不断增大的结构元素来执行开-闭滤波。
开运算可用于补偿不均匀的背景亮度。
顶帽变换(top-hat)
从原图像中减去开运算后的图像称为顶帽变换。
g = imtophat(f, NHOOD)
底帽变换(bottom-hat)
从原图像中减去闭运算后的图像称为底帽变换。
g = imbothat(f, NHOOD)
重构:抑制小峰值
开运算重构(opening-by-reconstruction)
闭运算重构(closing-by-reconstruction)
例 使用重构删除复杂图像的背景