形态学处理

改变物体形状。
一般去噪声时先腐蚀再进行膨胀。因为腐蚀在去掉白噪声的同时也会使得前景对象变小,所有需要再进行膨胀。
image.png

腐蚀(将前景区域变瘦)

将前景物体的边界腐蚀掉(前景仍旧是白色)。

实现原理

卷积核沿着图像滑动,若与卷积核对应的原图像的所有像素值==1,那么中心元素像素值保持不变,否则置0。

作用

根据卷积核的大小靠近前景的所有像素都会被腐蚀(变为0),所以前景物体会变小,整幅图像的白色区域会减少。

应用

  • 腐蚀图片中一些毛刺或者很细小的东西
  • 去除白噪声
  • 断开两个连在一起的物体

    函数

    ```python

    img: 待腐蚀的二值图像

    kernel: 腐蚀内核,默认3x3 rectangular structuring,可通过cv2.getStructuringElement()获得

    iterations: 腐蚀次数

    erosion = cv2.erode(img, kernel, iterations = 1)

dilation = cv2.dilate(img,kernel,iterations = 1)

cv2.MORPH_CROSS: 十字结构

cv2.MORPH_RECT: 矩形结构

cv2.MORPH_ELLIPSE: 椭圆结构

kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, size)

  1. <a name="hRpeh"></a>
  2. ## 膨胀(将前景区域变胖)
  3. <a name="Z7NRG"></a>
  4. #### 实现原理
  5. 卷积核沿着图像滑动,若与卷积核对应的原图像的像素值中只要有一个==1,那么中心元素像素值置0。
  6. <a name="sxy26"></a>
  7. #### 作用
  8. 增加图像中的白色区域(前景)。
  9. <a name="i3Erq"></a>
  10. #### 应用
  11. - 连接两个分开的物体
  12. <a name="igo37"></a>
  13. ## 开运算
  14. 腐蚀->膨胀,去除噪声。
  15. ```python
  16. opening = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)

闭运算

膨胀->腐蚀,用来填充前景物体中的小洞,或者前景物体上的小黑点。

  1. closing = cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel)

为什么卷积和都是奇数

https://blog.csdn.net/weixin_42535423/article/details/104941782