用opencv python填充轮廓

2024-05-29 05:51:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个带有多段线的二值图像,多段线的创建方式是:

cv2.polylines(binaryImage,contours,1, (255,255,255))

我现在需要的是有效的方法来填充所有多段线。我在opencv中还没有找到这种方法,但也许它是存在的。或者,也许我可以实现算法来完成这项工作(但快速的一个-我有高清准备图片)。请分享你的想法。。


Tags: 方法图像算法方式图片cv2opencv二值
3条回答

当使用cv2.drawContours函数时,设置thickness=cv2.FILLED就完成了。

我想你要找的是^{},它填充由一个或多个多边形包围的区域。这是一个简单的片段,我生成一个四点的轮廓,代表一个正方形的顶点,然后我用白色填充多边形。

import numpy as np
import cv2

contours = np.array( [ [50,50], [50,150], [150, 150], [150,50] ] )
img = np.zeros( (200,200) ) # create a single channel 200x200 pixel black image 
cv2.fillPoly(img, pts =[contours], color=(255,255,255))
cv2.imshow(" ", img)
cv2.waitKey()

enter image description here

您可以使用drawContours将标志设置为FILLED

(代码用Java编写)

Imgproc.drawContours(mat, contours, contourID, COLOR, Core.FILLED);

给出所需轮廓的ID和要填充的颜色。

相关问题 更多 >

    热门问题