opencv 区域填充
时间: 2023-06-30 12:26:54 浏览: 142
opencv填充连通域
4星 · 用户满意度95%
OpenCV中的区域填充函数是cv2.floodFill(),它可以在图像中填充指定的区域。
该函数需要指定以下参数:
- img:输入图像,必须是8位单通道图像,可以是彩色或灰度图像。
- mask:与输入图像大小相同的单通道图像,用于指定要填充的区域。填充区域必须是黑色的,而其他区域必须是白色的。
- seedPoint:填充区域的起始点,可以是任何点,但必须在填充区域内。
- newVal:填充像素的新值。
- loDiff和hiDiff:用于确定填充颜色的范围。如果当前像素的值在(seedPoint像素值±hiDiff)之间,则该像素将被填充。如果当前像素的值小于(seedPoint像素值±loDiff),则填充过程停止。
- flags:指定填充算法的标志。可以是4或8,表示四连通或八连通填充。
示例代码如下:
```
import cv2
# 读取图像
img = cv2.imread("test.jpg")
# 创建与图像大小相同的掩膜
mask = np.zeros((img.shape[0]+2, img.shape[1]+2), np.uint8)
# 指定填充起始点
seed_point = (100, 100)
# 指定填充新值
new_value = (255, 255, 255)
# 指定填充颜色的范围
lo_diff = (10, 10, 10)
hi_diff = (10, 10, 10)
# 进行区域填充
cv2.floodFill(img, mask, seed_point, new_value, lo_diff, hi_diff)
# 显示结果
cv2.imshow("Result", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
阅读全文