2013-07-10 11 views
10

Używam OpenCV dla aplikacji C++. Mam 8-bitowy obraz binarny, który ma kilka obiektów. Wszystkie obiekty mają kolor 255, natomiast wszystko w tle jest kolorowe 0. Każdy obiekt nie ma w nim pustych (czarnych) pikseli. Innymi słowy, każdy obiekt jest całkowicie biały. Obiekty NIE są ze sobą połączone. Oto, co chcę wyodrębnić z tego:OpenCV jak znaleźć listę podłączonych komponentów w obrazie binarnym

Chcę wyodrębnić pewien rodzaj listy obiektów, z których mam pewne pojęcie o położeniu każdego obiektu na tej liście. Może to być użycie cvConnectedComponents() lub cokolwiek innego. Potrzebuję wskazania, gdzie każdy obiekt znajduje się w obrazie. Może to być w formie prostokąta ograniczającego dla każdego obiektu lub mediany lub środka w oparciu o niektóre obliczenia lub cokolwiek, co daje mi miarę położenia obiektów na obrazie. Jakieś wskazówki na temat funkcji OpenCV?

+3

Przestudiuj ten przykład. http://docs.opencv.org/doc/tutorials/imgproc/shapedescriptors/find_contours/find_contours.html – William

+2

możliwy duplikat [połączonych komponentów w OpenCV] (http://stackoverflow.com/questions/12688524/connected-components- in-opencv) – Kiran

Odpowiedz

7

Musisz cv :: flood Wypełnij kontury zwrócone przez cv :: findCountours. Zobacz this example dla findContours, a this one dla floodFill

+2

Myślę, że odpowiedź z tym powinna zostać zmieniona teraz, gdy 3.0 jest już na wyczerpaniu. –

Powiązane problemy