2012-07-14 940 views
2

我有一個圖像,我使用OpenCV來查找該圖像中的輪廓。例如:OpenCV:將不規則形狀的輪廓內部設置爲顏色

contours, hierarchy = cv2.findContours(image, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE) 

返回的每個輪廓有時非常不規則。例如,其中一個的返回是:

contour = [[[34 4]] 
[[35 3]] 
[[36 4]] 
[[36 11]] 
[[35 12]] 
[[34 11]] 
[[34 6]] 
[[33 6]] 
[[32 5]] 
[[33 4]]] 

我想將此輪廓的內部設置爲特定的顏色。我已經嘗試使用cv2.BoundingRect來獲得這個輪廓的邊界矩形,然後使用它來設置顏色,但是,我想要一個更精確的方法來使用實際輪廓來做到這一點。

是否有一種直接的方式通過OpenCV提供的函數或通過NumPy來完成此操作?

回答

2

使用cv2.drawContours()lineType = -1標誌(Docs

例如功能:cv2.drawContours(IMG,[CNT],0,顏色,-1)#特定輪廓的內側填充

cv2.drawContours(IMG,輪廓,-1,顏色,-1)#來填充所有的輪廓內部在單一步驟

欲瞭解更多詳情,請訪問:Contours -1 : Getting Started