Zaznaczenie kilku linii na obrazie

Tematyka związana z tworzeniem aplikacji w LabVIEW do obsługi wizji oraz wszelkich operacji na obrazie.
mario87
Posty: 2
Rejestracja: 12 gru 2014 17:59
Wersja środowiska: LabVIEW 2011

Zaznaczenie kilku linii na obrazie

Post autor: mario87 » 12 gru 2014 18:12

Witam

Czy jest możliwość zaznaczenia jednocześnie kilku linii na tym samym obrazie i zapisania ich długości? Najlepiej żeby były to linie ROI, każda w innym kolorze i żeby każda podawała swoje współrzędne. Standardowo można tylko jedną aktywną zaznaczyć, trzymając ctrl można kilka ale już nie podaje ich wartości.
Muszę mierzyć długość kilku linii w wybranej klatce filmu i dalej przenieść to na wykresy. Na razie zrobiłem to tak że zaznaczam jedną linię i sczytuję jej długość przez wciśnięcie przycisku, ale przy trzech liniach i kilkudziesięciu klatkach filmu będzie za dużo klikania myszką ;) a bardzo możliwe że tych linii będzie więcej w pojedynczym momencie.

edit:
Zrobiłem też wersje bez zatwierdzania linii przyciskiem ale cały czas interesuje mnie możliwość wprowadzenia trzech linii na jedno zdjęcie :)
Ostatnio zmieniony 12 gru 2014 20:49 przez mario87, łącznie zmieniany 1 raz.

Awatar użytkownika
aaddaas
Posty: 182
Rejestracja: 26 cze 2013 20:42
Wersja środowiska: LabVIEW 2015

Zaznaczenie kilku linii na obrazie

Post autor: aaddaas » 13 gru 2014 14:43

Jeśli możesz, to podrzuć swojego vi'a
Obrazek

mario87
Posty: 2
Rejestracja: 12 gru 2014 17:59
Wersja środowiska: LabVIEW 2011

Re: Zaznaczenie kilku linii na obrazie

Post autor: mario87 » 13 gru 2014 20:32

Może podpowiecie mi jeszcze co poprawić żeby działał szybciej albo ogólnie jakieś podpowiedzi do konstrukcji :)
Załączniki
moje v2.vi
(200.16 KiB) Pobrany 123 razy

Awatar użytkownika
aaddaas
Posty: 182
Rejestracja: 26 cze 2013 20:42
Wersja środowiska: LabVIEW 2015

Zaznaczenie kilku linii na obrazie

Post autor: aaddaas » 14 gru 2014 13:23

Hej!
Jeśli chcesz mieć długość wielu linii, które zaznaczasz, możesz zebrać koordynaty każdej z lini, w miejscu gdzie czytałeś Współrzędne Linii (ROI->Global Rectangle), czytać array of clusters Contours, z którego wybierasz koordynaty i z pitagorasa obliczasz długość odcinka (Masz 4 pozycje - od trzeciej odejmujesz pierwszą oraz od czwartej odejmujesz drugą i robisz średnią geometryczną). Niestety nie wiem jak zrobić je wielokolorowymi, ale jeśli się dogrzebię, to dam znać.

Co do konstrukcji programu.
1. Program powinien mieścić się w obrębie jednego monitora, bądź z potrzebą przewijania ale tylko w jednej osi.
2. Modularność. Tam gdzie powtarza Ci się kod (jak przy rysowaniu na XY Graph) stwórz subVI.
3. Controlki oraz Indicatory niech nie będą pokazywane jako ikony (możesz to zmienić w Tools-Options-Block Diagram - Place front panel terminals as icons)
4. Obsługa błędów!
5. Dokumentacja - podpisywanie stałych, podpisywanie dłuższych przewodów, itp itd.
To tak na początek;) W razie dalszych pytań - pytaj;)
Obrazek

ODPOWIEDZ