Potrzebuję obliczyć obszar obiektu typu blob/obiektu w obrazie w skali szarości (ładowanie go jako Mat, a nie jako IplImage) przy użyciu OpenCV. Pomyślałem, że dobrze byłoby uzyskać współrzędne krawędzi (liczba krawędzi zmienia się z obiektu do obiektu) lub uzyskać wszystkie współrzędne konturu, a następnie użyć contourArea()
do obliczenia obszaru mojego obiektu.Obliczanie powierzchni obiektu za pomocą OpenCV
Usunąłem wszystkie zakłócenia i uzyskałem kilka ładnych i satysfakcjonujących konturów za pomocą findContours()
(programowanie w C++).
findContours(InputOutputArray image, OutputArrayOfArrays contours, OutputArray hierarchy,int mode, int method, Point offset=Point());
Teraz mam rozumieć, że param contours
posiada już współrzędne wszystkich konturów mojego obiektu. Czy to rozumiem?
Jeśli tak, to czy istnieje sposób na uzyskanie do nich dostępu?
A jeśli nie, w jaki sposób mogę uzyskać współrzędne konturu?
Dzięki wielkie! Zajęło mi trochę czasu, aby zrozumieć, co robisz, ale o ile mogę powiedzieć, od teraz to działa :) Siedziałem na ten problem przez kilka dni nie widząc żadnego rozwiązania ... – Temer
Czytanie dokumentów zaoszczędziło ci dużo czas :). Przykładowy kod, który jest dostarczany z OpenCV, jest również świetny. – Sam