OpenCV教程-OpenCV 腐蚀与膨胀
腐蚀和膨胀是形态学图像处理操作。OpenCV 形态学图像处理是一种修改图像几何结构的过程。在形态学中,我们找到对象的形状、大小或结构。这两个操作是为二进制图像定义的,但我们也可以在灰度图像上使用它们。它们广泛用于以下方式:
去除噪声
识别图中的强度突起或孔洞。
分离个体元素并将图像中的不同元素连接起来。
在本教程中,我们将简要解释腐蚀和膨胀。
膨胀
膨胀是一种扩展图像的技术。它在图像的对象边界上添加像素。结构元素控制它。结构元素是一个由1和0组成的矩阵。
结构元素
结构元素的大小和形状定义了在图像中应添加或删除多少个像素。
它是一个由1和0组成的矩阵。图像的中心像素称为原点。
它包含一个带有某个核(B)的图像A,该核可以具有任何形状或大小,通常是一个正方形或圆形。这里核B有一个定义的锚点,即核的中心。
在下一步中,将核叠加到图像上以计算最大像素值。计算完成后,图像将用一个在中心的锚点替换。较亮的区域增加了大小,从而增加了图像大小。
例如,在白色阴影中,对象的大小增加;另一方面,在黑色阴影中,对象的大小自动减小。
👉点击领取:最全Python资料合集
cv2.dilate(src, dst, kernel)
参数:dilate() 函数接受以下参数:
src - 表示输入图像。
dst - 表示输出图像。
kernel - 表示核。
import cv2import numpy as npimg = cv2.imread(r'C:\Users\DEVANSH SHARMA\jtp_flower.jpg, 0)kernel = np.ones((5,5), np.uint8)img_erosion = cv2.erode(img, kernel, iterations=1)img_dilation = cv2.dilate(img, kernel, iterations=1)cv2.imshow('Input', img)cv2.imshow('Dilation', img_dilation)cv2.waitKey(0)
输出
腐蚀
腐蚀与膨胀非常相似。区别在于在腐蚀中像素值计算的是最小值,而在膨胀中是最大值。图像在锚点下方用计算出的最小像素替换。与膨胀不同,较暗阴影的区域增加,而在白色或较亮的一侧则减小。
cv2.erode(src, dst, kernel)
参数:
src - 表示源(输入)图像。
dst - 表示目标(输出)图像。
kernel - 表示核。
import cv2import numpy as npimg = cv2.imread(r'C:\Users\DEVANSH SHARMA\baloon.jpg', 1)kernel = np.ones((5,5), np.uint8)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.waitKey(0)
输出
上述程序将产生以下输出。我们可以看到两个图像之间的差异。
应用于输入图像的腐蚀操作。
热门推荐