许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  Matlab图像处理:bwmorph函数详解与形态学操作示例

Matlab图像处理:bwmorph函数详解与形态学操作示例

阅读数 4
点赞 0
article_banner

Matlab中的bwmorph函数解释

bwmorph:对二值图像的形态学操作。

BW2 = bwmorph(BW,operation)

BW2 =bwmorph(BW,operation,n)

BW2 = bwmorph(BW,operation)对二值图像应用形态学操作。

BW2 = bwmorph(BW,operation,n)应用形态学操作n次,n可以是Inf,这种情况下该操作被重复执行直到图像不再发生变化为止。

Operation是以下的字符串:


OperationDescription
'bothat'是形态学上的“底帽”变换操作,返回的图像是原图减去形态学闭操作处理后的图像(闭操作:先膨胀再腐蚀)
'bridge'连接断开的像素。也就是将0值像素置1如果他有两个非零的不相连(8邻域)的像素,比如: 1 0 0 1 1 0 1 0 1 经过bridge连接后变为 1 1 1 0 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 0 1 0 0 经过diag变成 1 1 0 0 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 1 0 1 0 变成 0 0 0 1 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 0 0 0 0 0 0 0 0 0 0 0 1 0 变成 0 0 0 0 0 1 0 0 0 1 0 0 1 1 0 0 1 1 0 0
'thicken'n = Inf时,通过在目标外部增加像素加厚目标直到这样做最终使先前未连接目标成为8连通域。
'thin'n = Inf时,减薄目标成线。没有孔洞的目标缩成最低限度的连通边;有孔洞的目标缩成连通环。
'tophat'执行形态学“顶帽”变换操作,返回的图像是原图减去形态学开操作处理之后的图像(开操作:先腐蚀再膨胀)。

对比下面简介理解

bwmorph

   功能: 提取二进制图像的轮廓.

   语法: BW2 = bwmorph(BW1,operation) ;

   BW2 = bwmorph(BW1,operation,n) ; n为次数;

   Operation的参数可以有多种选择,现归纳如下:

   ‘bothat’:闭包运算,即先腐蚀,在膨胀,然后减去原图像;

   ‘bridge’:做连接运算;

   ‘clean’:去除孤立的亮点;

   ‘close’:进行二值闭运算;

   ‘diag’:采用对角线填充来去除8邻域的背景;

   ‘dilate’:采用结构元素ones(3)做膨胀运算;

   ‘erode’:采用结构元素ones(3)作腐蚀运算;

   ‘fill’:填充孤立的黑点;

‘hbreak’:断开H形连接;

   ‘Majority’:若像素的8邻域中有大于或等于5的元素为1,则像素为1,否则为0;

   ‘open’:执行二值开运算;

   ‘remove’:去掉内点,即若像素的4邻域都为1,则像素为0;

   ‘shrink’n=inf:做收缩运算,这样没有孔的物体收缩为一个点,而含孔的物体收缩为一个相连的环,环的位置在孔和物体外边缘的中间,收缩运算保持欧拉数不变,

   ‘skel’n=inf: 提取物体的骨架,即去除物体外边缘的点,但是保持物体不发生断裂,它也保持欧拉数不变。 ‘spur’:去除物体小的分支;

   ‘thicken’n=inf;对物体进行粗化,即对物体的外边缘增加像素,知道原来为连接的物体按照8邻域被连接起来。粗化保持欧拉数不变。

   ‘thin’n=inf:对物体进行细化,使得没有孔的物体收缩为最小连接棒,而含有孔的物体收缩为一个连接的环,同样细化保持欧拉数不变。

   ‘tophat’:用原图减去开运算后的图像;

支持类:

       输入图像BW1可以是数值或逻辑类型.必须是2-D, 实的和非稀疏的.输出图像BW2是逻辑型的.


   例子:

           BW1 = imread('circles.png');

           imview(BW1)

           BW2 = bwmorph(BW1,'remove');

           BW3 = bwmorph(BW1,'skel',Inf);

           imview(BW2)

           imview(BW3)

%% imdilate膨胀clcclear A1=imread('.\images\dipum_images_ch09\Fig0906(a)(broken-text).tif');info=imfinfo('.\images\dipum_images_ch09\Fig0906(a)(broken-text).tif')B=[0 1 0   1 1 1   0 1 0];A2=imdilate(A1,B);%图像A1被结构元素B膨胀A3=imdilate(A2,B);A4=imdilate(A3,B); subplot(221),imshow(A1);title('imdilate膨胀原始图像'); subplot(222),imshow(A2);title('使用B后1次膨胀后的图像'); subplot(223),imshow(A3);title('使用B后2次膨胀后的图像'); subplot(224),imshow(A4);title('使用B后3次膨胀后的图像'); 27%imdilate图像膨胀处理过程运行结果如下: %% imerode腐蚀clcclearA1=imread('.\images\dipum_images_ch09\Fig0908(a)(wirebond-mask).tif');subplot(221),imshow(A1);title('腐蚀原始图像');

其他操作的 demo 看下面链接:

http://www.cnblogs.com/tornadomeet/archive/2012/03/20/2408086.html

继续加入不同表达的链接,方便理解:

http://blog.sina.com.cn/s/blog_68d792de0100j571.html

案例显示:

http://www.imageprocessingplace.com/DIP-3E/dip3e_book_images_downloads.htm  (图片下载处)

http://cn.mathworks.com/help/images/ref/bwmorph.html    

转自

https://blog.csdn.net/a1075863454/article/details/45646187


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删



相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空