Relleno de contornos con python opencv.

Tengo imagen binaria con polilíneas creadas con:

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

Lo que necesito ahora es un método efectivo para llenar todas las polilíneas. No he encontrado tal método en el opencv, pero tal vez existe. Alternativamente, tal vez podría implementar un algoritmo para hacer el trabajo (pero rápido, tengo imágenes preparadas para HD). Por favor comparte tus pensamientos ..

Related of "Relleno de contornos con python opencv."

Creo que lo que estás buscando es cv2.fillPoly , que llena el área delimitada por uno o más polígonos. Este es un fragmento simple, genero un contorno de cuatro puntos que representan los vértices de un cuadrado, luego lleno el polígono con un color blanco.

 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() 

introduzca la descripción de la imagen aquí

Mientras usa la función cv2.drawContours , establezca el thickness=cv2.FILLED y listo.

Puede usar drawContours con el indicador establecido como FILLED :

(el código está en Java)

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

Usted da la ID del contorno deseado y el color con el que desea que se rellene.