机器视觉之开运算和闭运算

开运算(Opening)和闭运算(Closing)是数学形态学中常用的图像处理操作,通常用于去除图像中的噪声、连接物体、分离物体等操作。它们分别由两个基本操作组成:腐蚀(Erosion)和膨胀(Dilation)。

  1. 开运算(Opening)

    • 开运算是先对图像进行腐蚀操作,然后再进行膨胀操作。
    • 开运算的主要作用是去除图像中的小白噪声,以及分离接触在一起的物体。
    • 通常用于前景物体分离和去噪声的预处理操作。
  2. 闭运算(Closing)

    • 闭运算是先对图像进行膨胀操作,然后再进行腐蚀操作。
    • 闭运算的主要作用是填充物体内部的小洞,以及连接断开的物体。
    • 通常用于填充物体内部的空洞和连接断开的物体。

开运算和闭运算的操作步骤如下:

  • 开运算(Opening)

    1. 对原始图像应用腐蚀操作。
    2. 对腐蚀后的图像应用膨胀操作。
  • 闭运算(Closing)

    1. 对原始图像应用膨胀操作。
    2. 对膨胀后的图像应用腐蚀操作。

这些运算可以使用各种图像处理库(如OpenCV)的函数来实现。以下是使用OpenCV的Python示例代码:

import cv2
import numpy as np

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

# 定义腐蚀和膨胀的核(可以根据需要调整核的大小)
kernel = np.ones((3, 3), np.uint8)

# 执行开运算
opening_result = cv2.morphologyEx(image, cv2.MORPH_OPEN, kernel)

# 执行闭运算
closing_result = cv2.morphologyEx(image, cv2.MORPH_CLOSE, kernel)

# 显示结果图像
cv2.imshow('Original Image', image)
cv2.imshow('Opening Result', opening_result)
cv2.imshow('Closing Result', closing_result)
cv2.waitKey(0)
cv2.destroyAllWindows()

猜你喜欢

转载自blog.csdn.net/qq_42244167/article/details/132540973