hellou

opencv学习笔记(三)

腐蚀操作:

通常情况下,在进行腐蚀操作之前,我们会对图像进行二值化处理。膨胀同理。

可以用于去除图像中的噪声,平滑边缘,并缩小或消除图像中的物体。

import cv2
import numpy as np

# 读取图像
image = cv2.imread('input.jpg', cv2.IMREAD_GRAYSCALE)

# 定义腐蚀操作的结构元素(内核)
kernel = np.ones((5, 5), np.uint8)  # 这里使用5x5的矩形内核

# 执行腐蚀操作
eroded_image = cv2.erode(image, kernel, iterations=1)

# 显示原始图像和腐蚀后的图像
cv2.imshow('Original Image', image)
cv2.imshow('Eroded Image', eroded_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

cv2.erode()函数的第一个参数是输入图像,第二个参数是腐蚀操作的结构元素(内核),第三个参数是迭代次数。迭代次数表示腐蚀操作的重复次数

膨胀操作:

import cv2
import numpy as np

# 读取图像
image = cv2.imread('input.jpg', cv2.IMREAD_GRAYSCALE)

# 定义膨胀操作的结构元素(内核)
kernel = np.ones((5, 5), np.uint8)  # 这里使用5x5的矩形内核

# 执行膨胀操作
dilated_image = cv2.dilate(image, kernel, iterations=1)

# 显示原始图像和膨胀后的图像
cv2.imshow('Original Image', image)
cv2.imshow('Dilated Image', dilated_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

其中,cv2.dilate()内置参数与cv2.erode()一致,这里就不再做介绍

开运算和闭运算:

开运算是先对图像进行腐蚀操作,然后再进行膨胀操作。它主要用于去除图像中的小物体、平滑边缘、消除细小的噪声。开运算能够保持大物体的形状,但会削弱边缘。

闭运算是先对图像进行膨胀操作,然后再进行腐蚀操作。它主要用于填充图像中的小孔洞、连接相邻的物体、平滑边缘。闭运算能够保持物体的形状,但会填充物体内部的空隙。

import cv2
import numpy as np

# 读取图像
image = cv2.imread('input.jpg', cv2.IMREAD_GRAYSCALE)

# 定义结构元素(内核)
kernel = np.ones((5, 5), np.uint8)  # 这里使用5x5的矩形内核

# 开运算
opened_image = cv2.morphologyEx(image, cv2.MORPH_OPEN, kernel)

# 闭运算
closed_image = cv2.morphologyEx(image, cv2.MORPH_CLOSE, kernel)

# 显示原始图像、开运算结果和闭运算结果
cv2.imshow('Original Image', image)
cv2.imshow('Opened Image', opened_image)
cv2.imshow('Closed Image', closed_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

cv2.morphologyEx()函数中,第一个参数是输入图像,第二个参数是操作类型,第三个参数是结构元素(内核),其中cv2.MORE_OPEN和cv2.MORE_CLOSE分别表示开运算和闭运算。

内核:

在上述代码中,我们定义了一个5x5的矩形内核作为形态学操作的结构元素。

结构元素是一种小的矩形或者圆形图像,用于图像形态学操作。它定义了操作的形状和大小,决定了操作的效果。

对于腐蚀操作来说,矩形内核的含义是在图像上滑动这个内核,并将内核下所有像素的最小值作为中心像素的值。也可以说,如果内核下的任何像素值为零(黑色),则中心像素被设置为零。这个过程可以使边缘变得更加锐利,减小或消除小的物体,并去除噪声。

在示例中,我们使用了一个5x5的矩形内核,它由np.ones((5, 5), np.uint8)创建。np.ones()函数用于创建一个由全1组成的矩阵,np.uint8指定了矩阵的数据类型为无符号8位整数。

你可以根据需要调整内核的大小和形状,以实现不同的腐蚀效果。常见的内核形状包括矩形、椭圆和十字形。

posted on 2023-06-20 16:31  云上u  阅读(28)  评论(0编辑  收藏  举报

导航