Matlab:Matlab中的bwmorph函数(对二值图像的形态学操作)的简介及其案例说明
目录
bwmorph函数(对二值图像的形态学操作)的简介
对二值图像的形态学操作
bwmorph:对二值图像的形态学操作。
BW2 = bwmorph(BW,operation)
BW2 =bwmorph(BW,operation,n)
BW2 = bwmorph(BW,operation)对二值图像应用形态学操作。
BW2 = bwmorph(BW,operation,n)应用形态学操作n次,n可以是Inf,这种情况下该操作被重复执行直到图像不再发生变化为止。
Operation是以下的字符串
Operation Description'bothat'是形态学上的“底帽”变换操作,返回的图像是原图减去形态学闭操作处理后的图像(闭操作:先膨胀再腐蚀)'bridge'连接断开的像素。也就是将0值像素置1如果他有两个非零的不相连(8邻域)的像素,比如:1 0 0 1 1 01 0 1 经过bridge连接后变为 1 1 10 0 1 0 1 1'clean'
移除孤立的像素(被0包围的1)。比如下面这个模型的中心像素:
0 0 0
0 1 0
0 0 0'close'执行形态学闭操作(先膨胀后腐蚀)'diag'
利用对角线填充来消除背景中的8连通区域。比如:0 1 0 1 1 01 0 0 经过diag变成 1 1 00 0 0 0 0 0'dilate'利用结构ones(3)执行膨胀操作。'erode'利用结构ones(3)执行腐蚀操作。'fill'
填充孤立的内部像素(被1包围的0),比如下面模型的中心像素:
1 1 1
1 0 1
1 1 1'hbreak'移除H连通的像素,例如:1 1 1 1 1 10 1 0 变成 0 0 01 1 1 1 1 1'majority'将某一像素置1如果该像素的3×3邻域中至少有5个像素为1;否则将该像素置0'open'执行形态学开操作(先腐蚀后膨胀)'remove'移除内部像素。该选项将一像素置0如果该像素的4连通邻域都为1,仅留下边缘像素。'shrink'n = Inf时,将目标缩成一个点。没有孔洞的目标缩成一个点,有孔洞的目标缩成一个连通环。'skel'n = Inf时,移除目标边界像素,但是不允许目标分隔开,保留下来的像素组合成图像的骨架。'spur'移除刺激(孤立)像素。比如:0 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 1 0 变成 0 0 0 00 1 0 0 0 1 0 01 1 0 0 1 1 0 0'thicken'n = Inf时,通过在目标外部增加像素加厚目标直到这样做最终使先前未连接目标成为8连通域。'thin'n = Inf时,减薄目标成线。没有孔洞的目标缩成最低限度的连通边;有孔洞的目标缩成连通环。'tophat'执行形态学“顶帽”变换操作,返回的图像是原图减去形态学开操作处理之后的图像(开操作:先腐蚀再膨胀)。
bw = bwareaopen(bw, threshold) %函数作用是删除二值图像BW中面积小于P的对象,默认情况下conn使用8邻域