有一个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()
函数。