matlab 膨胀 结构元,图像形态学膨胀 结构元素

本文介绍了如何利用形态学的结合律来分解结构元素,从而减少膨胀操作的运算量。通过将大的结构元素拆分为多个小的结构元素,可以显著提高膨胀操作在MATLAB中的效率。文中给出了OpenCV中结构元素的定义和相关操作,如`cvCreateStructuringElementEx`和`cvReleaseStructuringElement`。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

宽度W,高度H 的图像,做膨胀操作,如果膨胀的结构元素structure

element,大小为kw,kh,那么就需要做W*H*kw*kh次运算,运算量比较大。

根据图像形态学的理论,膨胀满足结合律,即

a4c26d1e5885305701be709a3d33442f.png,B和C为结构元素。假设一个结构元素S可以表示为两个结构元素B和C的膨胀,即S=B⊕C,则A⊕S=A⊕(B⊕C)=(A⊕B)⊕C,换言之,用S膨胀A等同于用B先膨胀A,再用C膨胀前面的结果。我们称S能够分解成B和C两个结构元素。结合律很重要,因为计算膨胀所需要的时间正比于结构元素中的非零像素的个数。通过上述推导,分解结构元素,然后再分别用子结构元素进行膨胀操作往往会实现很客观的速度的增长。

同样,腐蚀也可以做结构分解,腐蚀满足公式

a4c26d1e5885305701be709a3d33442f.png,B和C为结构元素,同样如果一个结构元素S可以表示为两个结构元素B和C的膨胀,即S=B⊕C,那么用S腐蚀A等同于用B先腐蚀A,再用C腐蚀前面的结果。公式推导省略。图像形态学膨胀和腐蚀介绍,可见

http://en.wikipedia.org/wiki/Erosion_(morphology)

http://en.wikipedia.org/wiki/Dilation_(morphology)做结构分解后的运算量为W*H*(kw+kh)代码如下

1

a4c26d1e5885305701be709a3d33442f.png#include

<cv.h>2a4c26d1e5885305701be709a3d33442f.png#include

<highgui.h>3a4c26d1e5885305701be709a3d33442f.png#include

<stdio.h>4a4c26d1e5885305701be709a3d33442f.png5a4c26d1e5885305701be709a3d33442f.png6a4c26d1e5885305701be709a3d33442f.pngint

main(int argc, char**

argv)7a4c26d1e5885305701be709a3d33442f.png

a4c26d1e5885305701be709a3d33442f.pnga4c26d1e5885305701be709a3d33442f.png{8a4c26d1e5885305701be709a3d33442f.png

a4c26d1e5885305701be709a3d33442f.png if(argc<2)

a4c26d1e5885305701be709a3d33442f.png{9a4c26d1e5885305701be709a3d33442f.png

printf("has no param\n");10a4c26d1e5885305701be709a3d33442f.png

return 0;11a4c26d1e5885305701be709a3d33442f.png

}12

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值