假设内轮廓已经被提取并且存储在名为"contour"的变量中,可以使用OpenCV库中的cv2.fillPoly()函数进行填充。

以下是一个例子代码:

import cv2
import numpy as np

# 读取图像
img = cv2.imread('image.jpg')

# 提取内轮廓
contours, hierarchy = cv2.findContours(img, cv2.RETR_CCOMP, cv2.CHAIN_APPROX_SIMPLE)
inner_contour = contours[1]

# 创建一个空白的黑色图像,与原图像大小相同
mask = np.zeros_like(img)

# 使用cv2.fillPoly()函数对内轮廓进行填充
cv2.fillPoly(mask, [inner_contour], (127, 127, 127))

# 将填充后的图像与原图像进行叠加
result = cv2.addWeighted(img, 1, mask, 0.5, 0)

# 显示结果
cv2.imshow('result', result)
cv2.waitKey(0)
cv2.destroyAllWindows()

在上述代码中,先使用cv2.findContours()函数提取出内轮廓,然后创建一个与原图像大小相同的空白图像,使用cv2.fillPoly()函数对内轮廓进行填充,最后使用cv2.addWeighted()函数将填充后的图像与原图像进行叠加,得到最终结果。


原文地址: https://www.cveoy.top/t/topic/bnPe 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录