Cuando recupera contornos de una imagen, debe obtener 2 contornos por blob, uno interno y uno externo. Considere el siguiente círculo: dado que el círculo es una línea con un ancho de píxel mayor que uno, debería poder encontrar dos contornos en la imagen, uno de la parte interna del círculo y el otro de la parte exterior.¿Cómo encontrar contornos en OpenCV?
Al utilizar OpenCV, quiero recuperar los contornos INNER. Sin embargo, cuando uso findContours(), parece que solo obtengo los contornos externos. ¿Cómo recuperaría los contornos internos de una burbuja usando OpenCV?
Estoy utilizando la API C++, no C, por lo tanto, solo sugiero funciones que usan la API C++. (es decir, findContours() en lugar de cvFindContours())
Gracias.
¿Puede mostrarnos algún código? – SSteve
Bueno, realmente no tengo ningún código único. Solo tengo una Mat que recupero de la cámara. Ejecuto el detector de borde astuto y luego encuentro contornos usando findContours(). Todos los contornos encontrados se almacenan en un vector>. Eso es básicamente todo lo que tengo, así que no tiene mucho sentido que publique código real; es simplemente el proceso tradicional de encontrar contornos. –
fdh
He trabajado un poco con los contornos, aunque mi interés solo fueron los contornos externos. Intenté colorear un contorno con 'drawContours()'. Lo cual requiere una especie de jerarquía. La muestra en 'drawContours()' que utilicé, no coloreó los contornos internos. Lo que trato de hacer aquí, es que probablemente necesites usar la matriz de jerarquía de 'findContours()' para ordenarlos. (La razón por la que no publico una respuesta es que mi conocimiento de esta jerarquía es limitado, y no quisiera confundirlo sobre el asunto. He hecho un poco de prueba sobre esto y podría explicar mi comprensión hasta el momento, si lo solicita.) – Sonaten