您的位置:首页 > 编程语言 > MATLAB

形态学点滴

2014-07-10 14:19 183 查看

集合论的基本概念

 

令A为Z中的集合,如果a=(a1,a2)是A中的元素,则:a∈A

如果a不是A中的元素,则:a∉A

matlab函数:ismember(a,A),似乎还有个函数in与此类似

另外

判断集合中的元素是否按升序排列:issorted(A)

想想issorted(A(end:-1:1))是什么意思?

删除集合中的重复元素:unique(A)

 

如果A中的元素又是B中的元素,则A是B的子集,表示为:A⊆B

 

A∩B

matlab集合函数:C=intersect(A,B)

对于二值图像:A&B

 

A∪B

matlab集合函数:C=union(A,B)

对于二值图像:A|B

 

A-B

matlab集合函数:C=setdiff (A,B)

对于二值图像:A&(~B)

~B表示B的非

 

AorB 异或

matlab集合函数:setdiff(union(a,b),intersect(a,b))

对于二值图像:(A|B)&(~(A&B))

 

A的反射



matlab运算:A=~B

 

A平移到z,z=(z1,z2)



matlab运算:B=A+[z1 z2]

 

形态学

 

膨胀

 



定义来自①,在②中有不同的定义

注,不明白B的反射有什么用

膨胀可以简单的理解为:结构元素绕二值图像边界(白色部分的边界,因为在二值图中1为白色)走一圈,原图加上原图之外结构元素扫到的部分就是膨胀的结果。

结构元素B可以定义为


 


膨胀的特点:采用结构元素B1



总体上看白色区域扩大“一圈”;

白色外角失去角尖,变得圆滑;

 

腐蚀

 



注:符号应是圆圈里面减号

简单理解为:把结构元素想象成橡皮擦。结构元素绕边界区域一圈,抹去了部分图像



总体上白色区域“瘦了一圈”;

白色区域内角失去角尖,变圆滑;

 

开运算

 





开运算可以看做是,结构元素B在A内贴着边界转了一圈,不能超出A,扫掠到的范围及其内部就是开运算的结果

开运算的结果:

尖角处被圆滑、细颈被断开(这点在图上没有体现出来);

孤立点被削去(限于disk)





 

闭运算

 



闭运算可以看做是(不太准确),结构元素B在A外贴着A的外边界转了一圈,围成的区域构成闭运算的结果

闭运算结果:

内部小孔被填补(限于disk);<
4000
/span>

内部细通道被填补;

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  集合 形态学 matlab