用opencv python填充轮廓

use*_*244 10 c++ python opencv image

我有二进制图像与折线创建:

cv2.polylines(binaryImage,contours,1, (255,255,255))
Run Code Online (Sandbox Code Playgroud)

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

jab*_*edo 29

我认为你正在寻找的是cv2.fillPoly填充由一个或多个多边形限制的区域.这是一个简单的片段,我生成一个表示正方形顶点的四个点的轮廓,然后我用白色填充多边形.

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()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述


Ash*_*hum 20

使用"cv2.drawContours"函数时,发送thickness = cv2.FILLED并完成.

  • 或者只是输入“厚度=-1” (2认同)
  • 或者直接输入“thickness=cv2.FILLED”,因为这样更清晰。:) (2认同)