Python使用OpenCV放大区域边界

有一个mask图片,掩膜部分用白色标出来的,其它区域是黑色,需要处理下,把白色区域的边界扩大一些,比如5个像素。

可以使用OpenCV库来处理这个问题。

下面是一个使用Python和OpenCV来扩大白色区域边界的示例代码:

import cv2
import numpy as np

# 读取图像
image = cv2.imread('mask.png', cv2.IMREAD_GRAYSCALE)

# 二值化图像,将非白色的区域设为黑色
_, threshold = cv2.threshold(image, 127, 255, cv2.THRESH_BINARY)

# 扩大白色区域的边界
kernel = np.ones((5,5), np.uint8)
dilated = cv2.dilate(threshold, kernel, iterations=1)

# 保存结果
cv2.imwrite('dilated_mask.png', dilated)

在这个示例代码中,首先使用cv2.imread()来读取待处理的图像。然后,将图像转换为灰度图像,可以使用cv2.cvtColor()函数进行转换,此处我们直接使用cv2.IMREAD_GRAYSCALE参数来读取图像为灰度图像。接下来,使用cv2.threshold()函数将图像二值化,将非白色的区域设为黑色。然后,创建一个5×5的核(扩张内核),使用cv2.dilate()函数对二值图像进行膨胀操作,将白色区域的边界扩大5个像素。最后,使用cv2.imwrite()函数保存结果图像。

运行示例代码后,将生成一个名为dilated_mask.png的图像文件,其中白色区域的边界会被扩大5个像素。

如果是要缩小边界,可使用cv2.erode()函数。

Leave a Comment

豫ICP备19001387号-1