2013-10-07 109 views
2

填充輪廓我與創建折線二進制圖像:與OpenCV的蟒蛇

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

我現在需要的是填補所有折線有效的方法。我還沒有在opencv中找到這樣的方法,但也許它存在。或者,也許我可以實現算法來完成這項工作(但速度快 - 我有高清圖片)。請分享你的想法..

回答

6

我認爲你要找的是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() 

enter image description here

1

可以使用drawContours所述標誌設置爲FILLED

(代碼是Java)

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

您得到所需輪廓和的ID你想要它充滿的顏色。

4

在使用「cv2.drawContours」功能時,發送厚度= cv2.FILLED並完成。