在python中使用OpenCV对图像进行腐蚀和膨胀

形态学运算 是一组基于形状处理图像的操作。它们将结构元素应用于输入图像并生成输出图像。 最基本的形态学操作有两种: 腐蚀与膨胀 侵蚀的基础:

null
  • 侵蚀前景对象的边界
  • 用于减少图像的特征。

侵蚀工作:

  1. 一个核(一个奇数大小(3,5,7)的矩阵)与图像进行卷积。
  2. 只有当内核下的所有像素都为1时,原始图像中的像素(1或0)才会被视为1,否则,它会被侵蚀(变为零)。
  3. 因此,根据内核的大小,边界附近的所有像素都将被丢弃。
  4. 因此,前景物体的厚度或大小减小,或者只是图像中的白色区域减小。

扩张的基础知识:

  • 增加对象面积
  • 用来突出特征的

扩张的工作原理:

  1. 一个核(奇数大小的矩阵(3,5,7))与图像进行卷积
  2. 如果内核下至少有一个像素为“1”,则原始图像中的像素元素为“1”。
  3. 它会增加图像中的白色区域或前景对象的大小

python

# Python program to demonstrate erosion and
# dilation of images.
import cv2
import numpy as np
# Reading the input image
img = cv2.imread( 'input.png' , 0 )
# Taking a matrix of size 5 as the kernel
kernel = np.ones(( 5 , 5 ), np.uint8)
# The first parameter is the original image,
# kernel is the matrix with which image is
# convolved and third parameter is the number
# of iterations, which will determine how much
# you want to erode/dilate a given image.
img_erosion = cv2.erode(img, kernel, iterations = 1 )
img_dilation = cv2.dilate(img, kernel, iterations = 1 )
cv2.imshow( 'Input' , img)
cv2.imshow( 'Erosion' , img_erosion)
cv2.imshow( 'Dilation' , img_dilation)
cv2.waitKey( 0 )


第二个图像是原始图像的腐蚀形式,第三个图像是扩张形式。

图片[1]-在python中使用OpenCV对图像进行腐蚀和膨胀-yiteyi-C++库

侵蚀和膨胀的用途:

  1. 腐蚀:
    • 它对于消除小的白噪声非常有用。
    • 用于分离两个连接的对象等。
  2. 扩张:
    • 在噪声消除等情况下,腐蚀后会发生膨胀。因为,侵蚀去除了白噪声,但也缩小了我们的物体。所以我们把它放大。因为噪音消失了,它们不会回来,但我们的物体面积增加了。
    • 它在连接对象的断开部分时也很有用。

本文由 普拉蒂玛·乌帕迪亚 .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 写极客。组织 或者把你的文章寄去评论-team@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。 如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享