详解OpenCV开闭运算


开运算(Opening)和闭运算(Closing)是形态学操作中的两种常见操作,它们分别由腐蚀和膨胀操作组成。这些操作通常用于图像的预处理和分割。

1. 开运算(Opening)

开运算是先进行腐蚀操作,然后进行膨胀操作。它通常用于去除图像中的噪声或分离连接的对象。

python

import cv2
import numpy as np

# 读取图像
image = cv2.imread('opening_image.jpg', 0)  # 以灰度模式读取图像

# 定义开运算核
kernel = np.ones((5, 5), np.uint8)

# 应用开运算操作
opening = cv2.morphologyEx(image, cv2.MORPH_OPEN, kernel)

# 显示结果
cv2.imshow('Original Image', image)
cv2.imshow('Opening', opening)
cv2.waitKey(0)
cv2.destroyAllWindows()

在上述代码中,cv2.morphologyEx 函数用于执行形态学操作,其中 cv2.MORPH_OPEN 表示开运算。

2. 闭运算(Closing)

闭运算是先进行膨胀操作,然后进行腐蚀操作。它通常用于连接图像中的区域或填充空洞。

python

import cv2
import numpy as np

# 读取图像
image = cv2.imread('closing_image.jpg', 0)  # 以灰度模式读取图像

# 定义闭运算核
kernel = np.ones((5, 5), np.uint8)

# 应用闭运算操作
closing = cv2.morphologyEx(image, cv2.MORPH_CLOSE, kernel)

# 显示结果
cv2.imshow('Original Image', image)
cv2.imshow('Closing', closing)
cv2.waitKey(0)
cv2.destroyAllWindows()

在上述代码中,cv2.morphologyEx 函数用于执行形态学操作,其中 cv2.MORPH_CLOSE 表示闭运算。

开运算和闭运算常常结合使用,可以有效地去除噪声、连接相邻的区域、填充空洞等。在实际应用中,选择合适的核大小和形状对于操作的效果至关重要。这些操作在图像处理中的许多任务中都起着重要的作用,例如图像分割、轮廓提取等。

该博文为原创文章,未经博主同意不得转载。本文章博客地址:https://blog.csdn.net/weixin_39145520/article/details/134742725

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FuncPlotCalc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值