opencv 3.0 形态学运算 膨胀与腐蚀

来源:互联网 发布:数据挖掘常用算法 编辑:程序博客网 时间:2024/06/10 07:33

膨胀 dilation

考虑两幅二值图像A,B。它们的前景用黑色,背景用白色。另fA和fB表示各自前景点的集合。定义膨胀运算为:dilation(A,B) = {a+b| a∈A,b∈B}。比如:

A = {(2,8),(3,6),(4,4),(5,6),(6,4),(7,6),(8,8)}

B = {(0,0),(0,1)}

dilation(A,B) = {(2,8),(2,9),(3,6),(3,7),(4,4),(4,5),(5,6),(5,7),(6,4),(6,5),(7,6),(7,7),(8,8),(8,9)}

腐蚀 erosion

同样考虑两幅图像A,B。定义腐蚀运算为: erosion(A,B) = {a|(a+b)∈A, a∈A,b∈B}

膨胀腐蚀运算的性质

  • 交换律 dilation(A,B) = dilation(B,A)
  • 结合律 dilation(dilation(A,B),C) = dilation(A,dilation(B,C))
  • 并集    dilation(A,B∪C) = dilation(A,B)∪dilation(A,C)
  • 增长性 if Ablongs to B then dilation(A,K)blongs to dilation(B,K)

http://blog.csdn.net/xlvector/article/details/588828

 

 

通俗的说:

膨胀算法使图像扩大一圈。
腐蚀算法使二值图像减小一圈。


腐蚀:删除对象边界的某些像素
膨胀:给图像中的对象边界添加像素

算法:


从图像处理角度看,二值图像的腐蚀和膨胀就是将一个小型二值图(结构元素,一般为3*3大小)在一个大的二值图上逐点移动并进行比较,根据比较的结果作出相应处理而已。

膨胀算法:用3X3的结构元素,扫描二值图像的每一个像素,用结构元素与其覆盖的二值图像做“与”运算,如果都为0,结构图像的该像素为0,否则为1.结果:使二值图像扩大一圈。


腐蚀算法:用3X3的结构元素,扫描二值图像的每一个像素,用结构元素与其覆盖的二值图像做“与”运算,如果都为1,结构图像的该像素为1,否则为0.结果:使二值图像减小一圈。


注意:

OpenCV里面的腐蚀膨胀都是针对 白色 目标区域的。

说,膨胀使图像 变大一圈, 那是指 图像中的 白色目标区域 扩大了一圈~~~大笑~~~腐蚀,亦然。

http://blog.csdn.net/augusdi/article/details/9014781
0 1