在Python OpenCV中,可以使用函数cv2.fillPoly()来实现只填充零而不影响非零内容的操作。该函数可以用于在图像中绘制多边形,并将指定区域填充为指定的颜色。
以下是使用cv2.fillPoly()函数的步骤:
import cv2
import numpy as np
image = np.zeros((height, width, channels), dtype=np.uint8)
其中,height、width和channels分别表示图像的高度、宽度和通道数。
points = np.array([[x1, y1], [x2, y2], [x3, y3], ...], dtype=np.int32)
其中,[x1, y1]、[x2, y2]、[x3, y3]等表示多边形的顶点坐标。
cv2.fillPoly(image, [points], color)
其中,[points]表示多边形的顶点坐标列表,color表示填充的颜色,可以是单个整数值或RGB颜色值。
完整的代码示例:
import cv2
import numpy as np
# 创建空白图像
height, width, channels = 500, 500, 3
image = np.zeros((height, width, channels), dtype=np.uint8)
# 定义多边形的顶点坐标
points = np.array([[100, 100], [200, 100], [200, 200], [100, 200]], dtype=np.int32)
# 绘制多边形并填充为白色
color = (255, 255, 255)
cv2.fillPoly(image, [points], color)
# 显示图像
cv2.imshow("Filled Polygon", image)
cv2.waitKey(0)
cv2.destroyAllWindows()
在上述示例中,我们创建了一个大小为500x500的空白图像,并定义了一个四边形的顶点坐标。然后使用cv2.fillPoly()函数将该四边形填充为白色,并显示结果图像。
推荐的腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云