介绍
众所周知,OpenCV是一个用于计算机视觉和图像操作的免费开源库。
OpenCV 是用 C++ 编写的,并且有数千种优化的算法和函数用于各种图像操作。很多现实生活中的操作都可以使用 OpenCV 来解决。例如视频和图像分析、实时计算机视觉、对象检测、镜头分析等。
许多公司、研究人员和开发人员为 OpenCV 的创建做出了贡献。使用OpenCV 很简单,而且 OpenCV 配备了许多工具和功能。让我们使用 OpenCV 来执行有趣的图像操作并查看结果。
形态变换
形态变换是基于形状变换图像的图像处理方法。这个过程有助于区域形状的表现和刻画。这些转换使用应用于输入图像的结构元素,并生成输出图像。
形态学操作有多种用途,包括从图像中去除噪声、定位图像中的强度凹凸和孔洞,以及连接图像中的不同元素。
有两种主要的形态学变换类型:腐蚀和膨胀。
腐蚀
腐蚀是为了减小前景对象的大小而执行的形态学操作。异物的边界被慢慢腐蚀。腐蚀在图像编辑和转换中有许多应用,腐蚀会缩小图像像素。对象边界上的像素也被删除。
腐蚀的实现在 Python 中很简单,可以在内核的帮助下实现。
让我们开始使用 Python 中的代码来实现腐蚀。
首先,我们导入 Open CV 和 Numpy。
import cv2
import numpy as np
现在我们读取图像。
image = cv2.imread("image1.jpg")
图片:
我们创建了一个执行腐蚀操作所需的内核,并使用内置的 OpenCV 函数实现它。
# Creating kernel
kernel = np.ones((5, 5), np.uint8)
# Using cv2.erode() method
image_erode = cv2.erode(image, kernel)
现在,我们保存文件并查看。
filename = 'image_erode1.jpg'
# Using cv2.imwrite() method
# Saving the image
cv2.imwrite(filename, image_erode)
图片:
正如我们所看到的,图像现在被腐蚀了,锐度和边缘都减少了,图像变得模糊了。腐蚀可用于隐藏或删除图像的某些部分或隐藏图像中的信息。
让我们尝试不同类型的腐蚀。
kernel2 = np.ones((3, 3), np.uint8)
image_erode2 = cv2.erode(image, kernel2, cv2.BORDER_REFLECT)
现在,我们保存图像文件。