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.
Analiza konturów.
-
- Posty: 641
- Rejestracja: 31 gru 2010 01:36
- Wersja środowiska: LabVIEW 2017
- Lokalizacja: Katowice
Re: Analiza konturów.
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ść.
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ść.
Re: Analiza konturów.
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.
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.
Re: Analiza konturów.
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.
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 360 razy
-
- screen_labviewforum2.png (10.94 KiB) Przejrzano 7923 razy