使用 python 中的 OpenCV 对图像进行腐蚀和膨胀
形态运算是一组基于形状处理图像的运算。他们将结构化元素应用于输入图像并生成输出图像。 最基本的形态操作有两个:侵蚀和扩张 侵蚀基础:
- 侵蚀掉前景对象的边界
- 用于减少图像的特征。
侵蚀工作:
- 核(奇数大小(3,5,7)的矩阵)与图像卷积。
- 只有当内核下的所有像素都为 1 时,原始图像中的像素(1 或 0)才会被视为 1,否则,它会被侵蚀(变为零)。
- 因此,根据内核的大小,边界附近的所有像素都将被丢弃。
- 因此,前景对象的厚度或大小减小,或者只是图像中的白色区域减小。
膨胀基础:
- 增加对象面积
- 用来突出特征
膨胀工作:
- 核(奇数大小(3,5,7)的矩阵)与图像卷积
- 如果内核下至少有一个像素为“1”,则原始图像中的像素元素为“1”。
- 它增加了图像中的白色区域或前景物体的尺寸增加
计算机编程语言
# 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)
第二张图像是原图像的侵蚀形态,第三张图像是扩张形态。
侵蚀和扩张的用途:
- 侵蚀:
- 这对于去除小的白色噪声是有用的。
- 用于分离两个连接的对象等。
- 膨胀:
- 在像去除噪声这样的情况下,腐蚀之后是膨胀。因为,侵蚀去除了白噪音,但也缩小了我们的物体。所以我们扩大了它。既然噪音没了,他们就不会回来了,但是我们的物体面积增加了。
- 它在连接对象的破损部分时也很有用。
本文由 Pratima Upadhyay 供稿。如果你喜欢 GeeksforGeeks 并想投稿,你也可以使用write.geeksforgeeks.org写一篇文章或者把你的文章邮寄到 review-team@geeksforgeeks.org。看到你的文章出现在极客博客主页上,帮助其他极客。 如果你发现任何不正确的地方,或者你想分享更多关于上面讨论的话题的信息,请写评论。