Analiza konturów.

Tematyka związana z tworzeniem aplikacji w LabVIEW do obsługi wizji oraz wszelkich operacji na obrazie.
krzych07
Posty: 10
Rejestracja: 26 sie 2012 18:34
Wersja środowiska: LabVIEW 2013

Analiza konturów.

Post autor: krzych07 »

Mam dwa obrazy z tym samym obiektem.
Jeden obraz nazwijmy template a drugi target. Na drugim obrazie przedmiot jest obrócony przesunięty itd.

Próbuję znaleźć contours distances za pomocą kontrolki Compute Contours Distances. Wykryłem kontury na template i na target, stworzyłem match contour pattern oraz jako Template Contour Image kontrolki Compute contours distance użyłem obrazu nauczonego za pomocą Learn Contour Pattern. Otrzymuje jakieś wyliczone Distances.

Chciałbym teraz zobaczyć które punkty z którymi były brane do obliczania tych odległości. Tworząc aplikacje w OpenCV zwykle wrzucałem sobie template image oraz target image na jeden obraz i łączyłem odpowiadające sobie punkty liniami. Ale każda wizualizacja umożliwiająca mi sprawdzenie który punkt z którym jest brany do obliczenia dystansu będzie dobra. Może być to nawet coś takiego, że z odstępem czasowym pojawiają się na dwóch obrazach odpowiadające sobie punkty w postaci okręgów.

Czy ktoś może rozwiązywał już podobny problem? Jakieś podpowiedzi, fragmenty kodu? Wiem że powinienem jakoś rozbić strukturę distances na tablice i rysować kolejno te punkty na obraz i je wyświetlać. Jednak do tej pory nie udało mi się tego zrobić.

Załączam również fragment kodu który odpowiada za dopasowywanie do siebie konturów, tutaj też mogłem zrobić jakiś błąd (jak na razie LabView i jego dokumentacja nie zbyt do mnie przemawia i nie za bardzo wiem co się dzieje w poszczególnych miejscach).

Match mode w Learn Contour pattern ustawiłem na rotation. Mój zamysł jest taki żeby znaleźć odpowiadające sobie punkty konturu i z tego będę mógł obliczyć jego obrót i przesunięcie.
Załączniki
Screen kodu dopasowywującego kontury.
Screen kodu dopasowywującego kontury.
PiDi
Posty: 641
Rejestracja: 31 gru 2010 01:36
Wersja środowiska: LabVIEW 2017
Lokalizacja: Katowice

Re: Analiza konturów.

Post autor: PiDi »

Witaj na forum!

Skoro zrobiłeś coś takiego w OpenCV, to będzie łatwiej, jeśli pokażesz przykładowe obrazy i to, co ma z tego wszystkiego wyjść.
ObrazekObrazekObrazekObrazek
krzych07
Posty: 10
Rejestracja: 26 sie 2012 18:34
Wersja środowiska: LabVIEW 2013

Re: Analiza konturów.

Post autor: krzych07 »

Nie napisałem że zrobilem to w OpenCV.
Nie chodzi mi o to żeby to działało, pytanie jest troszkę inne. Chce sprawdzić działanie kontrolek w LabView.

Głównym celem tego pytania jest sposób zobaczenia które punkty są brane do obliczania contours distances (i czy są to te punkty o które mi chodzi). Jako obraz możesz wziąść cokolwiek, ja też wygenerowałem obrót elementu w paincie. Napisałem jak rozwiązywałem tą sprawę pisząc aplikacje w OpenCV.
Jeżeli chodzi o LabView to jestem zupełnie początkujący i chcę szybko sprawdzić czy określone rzeczy działają tak jak się spodziewam.
PiDi
Posty: 641
Rejestracja: 31 gru 2010 01:36
Wersja środowiska: LabVIEW 2017
Lokalizacja: Katowice

Re: Analiza konturów.

Post autor: PiDi »

Ok, załapałem o co chodzi chyba :D

Coś w tym stylu powinno pomóc:
punkty.png
ObrazekObrazekObrazekObrazek
krzych07
Posty: 10
Rejestracja: 26 sie 2012 18:34
Wersja środowiska: LabVIEW 2013

Re: Analiza konturów.

Post autor: krzych07 »

Ostateczną wersje zamieszczam w załączniku ale to dzięki Twojej odpowiedzi doszedłem do tego jak to zrobić.

Niestety Distances są liczone w jakiś niezrozumiały dla mnie sposób, punkty na template rysują się te same co na targecie. Wskazywały już na to dziwne wyniki zwracane przez compute distances.

Czy jest jakiś sposób żeby kontrolka brała odpowiadające sobie punkty z konturu i pomiędzy nimi obliczała odległość?
Mam nadzieje że wiadomo o co mi chodzi. Jeżeli nie proszę pisać spróbuję opisać to bardziej obrazowo.


Dodaje jeszcze vi żeby łatwiej było sprawdzić, może ktoś dojdzie o co chodziło twórcom.
Załączniki
contours_matching.vi
(442.23 KiB) Pobrany 359 razy
screen_labviewforum2.png
screen_labviewforum2.png (10.94 KiB) Przejrzano 7918 razy
ODPOWIEDZ