本文概述
- 扩张
- 侵蚀
- 消除噪音
- 识别照片中的强度凸起或孔洞。
- 分离单个元素并将图像中的不同元素结合在一起。
扩张 扩张是一种扩展图像的技术。它将像素数添加到图像中对象的边界。结构元素控制它。结构元素是1和0的矩阵。
结构元素
结构元素的大小和形状定义了应从图像中的对象中添加或删除多少个像素。
它是1和0的矩阵。图像的中心像素称为原点。
它包含具有某些核(B)的图像A, 该核可以具有任何形状或大小, 通常是正方形或圆形。在此, 内核B具有定义的锚点。它是内核的中心。
在下一步中, 将内核重叠在图像上以计算最大像素值。计算完成后, 图像将替换为中心的锚点。较亮的区域会增大尺寸, 从而使图像尺寸增大。
文章图片
例如, 对象的大小以白色阴影增加;另一方面, 黑色阴影的对象大小会自动减小。
使用cv2.dilate()方法执行膨胀操作。语法如下:
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)
输出
文章图片
侵蚀 侵蚀与膨胀非常相似。不同之处在于, 像素值的计算结果是最小值, 而不是最大值。图像将在锚点下替换为计算出的最小像素。不太可能膨胀, 深色阴影区域增加。减少白色阴影或较亮的一面。
OpenCV提供cv2.erode()函数来执行此操作。该函数的语法如下:
cv2.erode(src, dst, kernel)
参数:
- src-表示源(输入)图像。
- dst-代表目标(输出)图像。
- 内核-它代表内核。
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)
输出
上面的程序将给出以下输出。我们可以看到两个图像之间的差异。
文章图片
【OpenCV图像侵蚀和膨胀】侵蚀操作应用于输入图像。
文章图片
推荐阅读
- OpenCV图像旋转
- OpenCV图像过滤器
- OpenCV图像基本操作
- OpenCV图像轮廓
- OpenCV模糊(图像平滑)
- OpenCV Canny边缘检测
- OpenCV教程 | Python使用OpenCV
- OpenCV Blob检测
- i.MX6DL飞思卡尔双核安卓核心板主控