Quando recuperi i contorni da un'immagine, dovresti ottenere 2 contorni per blob: uno interno e uno esterno. Considera il cerchio sottostante: poiché il cerchio è una linea con una larghezza di pixel maggiore di uno, dovresti riuscire a trovare due contorni nell'immagine: uno dalla parte interna del cerchio e uno dalla parte esterna.Trovare contorni in OpenCV?
Utilizzando OpenCV, voglio recuperare i contorni interni. Tuttavia, quando uso findContours(), mi sembra di ottenere solo i contorni esterni. Come posso recuperare i contorni interni di un blob usando OpenCV?
Sto usando l'API C++, C non quindi solo suggerire le funzioni che utilizzano l'API C++. (cioè findContours() piuttosto che cvFindContours())
Grazie.
Puoi mostrarci un codice? – SSteve
Beh, in realtà non ho alcun codice univoco. Ho solo un tappetino che ho recuperato dalla fotocamera. Eseguo su di esso il rilevatore di bordo cangiante, quindi trovo i contorni usando findContours(). Tutti i contorni trovati sono memorizzati in un vettore>. Questo è praticamente tutto ciò che ho, quindi non ho molto senso pubblicare il codice reale - è solo il processo tradizionale di trovare contorni. –
fdh
Ho lavorato un po 'con i contorni, anche se il mio interesse erano solo i contorni esterni. Ho provato a colorare un contorno, con 'drawContours()'. Che rispecchia una sorta di gerarchia. L'esempio su 'drawContours()' che ho usato, non ha colorato i contorni interni. Quello che sto cercando di ottenere qui, è che probabilmente devi usare l'array hierachy da "findContours()" per ordinarli. (La ragione per cui non ho una risposta è che la mia conoscenza di questa gerarchia è limitata, non vorrei confondervi, ho fatto un po 'di prove su questi e ho potuto spiegare la mia comprensione fino ad ora, se richiesta.) – Sonaten