2013-07-10 7 views
10

Sto usando OpenCV per un'applicazione C++. Ho un'immagine binaria a 8 bit che ha alcuni oggetti. Gli oggetti sono tutti colorati 255, mentre tutto nello sfondo è colorato 0. Ogni oggetto non ha pixel vuoti (neri) al suo interno. In altre parole, ogni oggetto è completamente bianco. Gli oggetti NON sono collegati tra loro. Ecco cosa voglio estrarre da questo:OpenCV come trovare un elenco di componenti connessi in un'immagine binaria

Voglio estrarre una sorta di elenco di oggetti, da cui ho qualche nozione della posizione di ciascun oggetto in quella lista. Questo potrebbe utilizzare cvConnectedComponents() o qualsiasi altra cosa. Ho bisogno di qualche indicazione su dove si trova ogni oggetto nell'immagine. Questo potrebbe essere sotto forma di rettangolo di delimitazione per ogni oggetto o mediana o centro basato su qualche calcolo o qualsiasi cosa che mi dia una misura della posizione degli oggetti nell'immagine. Qualche suggerimento su cosa OpenCV funzioni per esaminare?

+3

Studiare questo esempio. http://docs.opencv.org/doc/tutorials/imgproc/shapedescriptors/find_contours/find_contours.html – William

+2

possibile duplicato di [componenti connessi in OpenCV] (http://stackoverflow.com/questions/12688524/connected-components- in-opencv) – Kiran

risposta

7

È necessario cv :: Riempi i contorni restituiti da cv :: findCountours. Vedere this example per findContours e this one per floodFill

+2

Penso che la risposta con questo dovrebbe essere cambiato ora che 3.0 è [finalmente] è fuori. –

Problemi correlati