tutorial - Cerrar una curva de contorno en OpenCV
segmentacion opencv python (2)
Un poco tarde, pero tuve que lidiar con esto yo mismo. Si realiza una operación de apertura (erosión seguida de dilatación) antes de la detección de bordes Canny, los bordes que detecte deben ser más continuos, lo que da como resultado mejores contornos. Este método parece ser bastante robusto. Mencioné esto en otra publicación y publiqué una muestra de código como parte de una pregunta reciente .
Estoy usando OpenCV (Canny + findCountours) para encontrar contornos externos de objetos. La curva dibujada es típicamente casi, pero no del todo, cerrada. Me gustaría cerrarlo para encontrar la región que delimita.
¿Cómo hago esto?
Cosas consideradas:
- Dilatación: los ejemplos que he visto muestran esto después de Canny, aunque me parece que tiene más sentido hacer esto después de encontrarContours
- Casco convexo - podría funcionar, aunque realmente estoy tratando de completar una curva
- Simplificación de forma: relacionado, pero no exactamente lo que quiero
Usando el método PolyLine para dibujar contornos
cv2.PolyLine(img, points, is_closed=True, 255, thickness=1, lineType=8, shift=0)
Lea los documentos para obtener más detalles: http://docs.opencv.org/2.4/modules/core/doc/drawing_functions.html
Mark respondió si resolvió tu problema. Si no, házmelo saber.