使用OpenCV在Python中进行图像腐蚀和膨胀
在本问题中,我们将了解Python如何使用OpenCV模块进行一些形态学操作,例如腐蚀和膨胀。OpenCV库主要用于计算机视觉,它是开源的,最初由英特尔设计,可在开源BSD许可下免费使用。
要使用OpenCV功能,我们需要使用pip下载它们。
sudo pip3 install opencv-python
什么是图像腐蚀以及它是如何工作的?
在腐蚀中,它会腐蚀掉前景对象的边界。它用于去除图像中的小噪点。腐蚀还可以用于分离两个连接的图像。
一个核是由图像形成的。核是一个矩阵,其阶数为奇数,例如3、5、7。
选择图像的一个像素。只有当核下的所有像素都为1时,此像素才会被选择为1。否则,它将被腐蚀。
因此,边界附近的所有像素都将被丢弃。
因此,前景对象的厚度减小。
什么是图像膨胀以及它是如何工作的?
在膨胀中,它会增加对象的面积。腐蚀可以去除噪点,但它也会缩小我们的图像,因此,在腐蚀之后,如果执行膨胀,我们可以获得更好的噪点去除结果。膨胀还可以用于连接对象的某些断裂部分。
一个核是由图像形成的。核是一个矩阵,其阶数为奇数,例如3、5、7。
选择图像的一个像素。只有当核下的所有像素都为1时,此像素才会被选择为1。
增加图像中白色区域或前景对象的大小。
示例代码
import cv2
import numpy as np
input_image = cv2.imread('TP_logo.jpg', cv2.IMREAD_COLOR)
kernel = np.ones((3,3), np.uint8) # set kernel as 3x3 matrix from numpy
#Create erosion and dilation image from the original image
erosion_image = cv2.erode(input_image, kernel, iterations=1)
dilation_image = cv2.dilate(input_image, kernel, iterations=1)
cv2.imshow('Input', input_image)
cv2.imshow('Erosion', erosion_image)
cv2.imshow('Dilation', dilation_image)
cv2.waitKey(0) #wait for a key to exit
输出
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP