Zmiana obrazu kolorowego na skalę szarości

Tematyka związana z tworzeniem aplikacji w LabVIEW do obsługi wizji oraz wszelkich operacji na obrazie.
Awatar użytkownika
Zenny
Posty: 7
Rejestracja: 24 lis 2012 22:38
Wersja środowiska: LabVIEW 2011

Zmiana obrazu kolorowego na skalę szarości

Post autor: Zenny »

Witam, piszę ponieważ mam problem, z przetwarzaniem obrazu. Działanie programu polega na tym, że wyświetla on na bieżąco obraz z kamery, w momencie przyciśnięcia przycisku 1 zbiera z kamery pojedynczą sekwencję, w momencie przyciśnięcia buttona nr 2 wykonuje drugie zdjęcie. Następnie chciałbym, żeby obrazy te odjęły się od siebie. Kamerka jest kolorowa, a ja chcę operować na obrazach 8 bitowych więc Konwertuje je z koloru na skalę szarości i do tablic. Ogólnie program działa do momentu konwersji obrazu na tablicę za pomocą bloczka Image To Array, wyskakuje error: Not an image. Zrobiłem osobny program który wczytuje dwa obrazy, gdzie jeden jest kolorowy (RGB) i zamiany na skalę szarości za pomocą bloczka ExtractSingleColorPlane VI, po czym program odejmuje je i w tym przypadk wszystko działa. W załączniku przesyłam program działający - Cam_odejmowanie2.vi i program nie działający Cam_odejmowanie3.vi. Zastanawiałem się czy może to być spowodowane przesyłaniem obrazu przez pętle Case Structure? Z góry dzięki wielkie za zainteresowanie i pomoc.
Załączniki
Cam_odejmowanie3.vi
(105.03 KiB) Pobrany 376 razy
Cam_odejmowanie2.vi
(50.17 KiB) Pobrany 400 razy
ruda
Posty: 23
Rejestracja: 18 sty 2012 15:29
Wersja środowiska: LabVIEW 2011

Zmiana obrazu kolorowego na skalę szarości

Post autor: ruda »

Hej

Też kiedyś robiłam podobny projekt w którym odejmowałam od siebie kolejne obrazy pobierane z kamery w formacie RGB
Przesyłam fragment mojego kodu, może się przyda :)

Obrazek
Obrazek
Extensa - certyfikowani programiści LabVIEW z Krakowa.
Awatar użytkownika
Zenny
Posty: 7
Rejestracja: 24 lis 2012 22:38
Wersja środowiska: LabVIEW 2011

Re: Zmiana obrazu kolorowego na skalę szarości

Post autor: Zenny »

A czy w Twój program też rejestrował sekwencje wybrane przez użytkownika, czy pobierał obrazy automatycznie co jakiś czas?
ruda
Posty: 23
Rejestracja: 18 sty 2012 15:29
Wersja środowiska: LabVIEW 2011

Zmiana obrazu kolorowego na skalę szarości

Post autor: ruda »

Pobierał automatycznie (2 kolejne), ale i tak musiałam jeden obraz trzymać w buforze (wiec tu tylko róznica kiedy wpisujesz obraz do bufora) ja zrobiłam bufor w postaci Functional Global Variable ale myśle że sam shift rejestr też wystarczy
Obrazek
Extensa - certyfikowani programiści LabVIEW z Krakowa.
Awatar użytkownika
Zenny
Posty: 7
Rejestracja: 24 lis 2012 22:38
Wersja środowiska: LabVIEW 2011

Re: Zmiana obrazu kolorowego na skalę szarości

Post autor: Zenny »

No właśnie mam problem z przechowywaniem tych obrazów. Myślałem, żeby zrobić to za pomocą shift rejestr, ale nie działają one w pętli case, której używam. Nigdy nie pracował na zmiennych globalnych więc jakbyś mogła podesłać fragment programu to byłoby super.
Awatar użytkownika
patka
Posty: 20
Rejestracja: 08 maja 2012 16:33
Wersja środowiska: LabVIEW 2012

Re: Zmiana obrazu kolorowego na skalę szarości

Post autor: patka »

Zapomniałeś w pierwszej i drugiej ramce w stanach false utrzymywać referencje do obu obrazków. Dlatego wystarczyło jedno przejście przez false (czyli moment kiedy nie klikałeś guzika), żeby obrazek zgubić. Skoro nic tam nie podłączyłeś to domyślnie wysyłałeś puste referencje, więc nie ma co się dziwić, że dla pustej referencji wyskakuje "Not an image" :)

W drugim wypadku działa, bo program zrobiłeś zdecydowanie czytelniej i sam się w nim nie zgubiłeś :p Dlatego np. do obsługi przycisków lepiej używaj struktury Event, wtedy na pewno nie zapomnisz o stanach false.

/A swoją drogą tych referencji też tam nie potrzebujesz aż tyle, to Ci tylko zaciemnia program.
Załączniki
Cam_odejmowanie3.vi
(105.47 KiB) Pobrany 385 razy
Ostatnio zmieniony 05 lut 2013 21:20 przez patka, łącznie zmieniany 1 raz.
Awatar użytkownika
Zenny
Posty: 7
Rejestracja: 24 lis 2012 22:38
Wersja środowiska: LabVIEW 2011

Re: Zmiana obrazu kolorowego na skalę szarości

Post autor: Zenny »

Ok udało mi się, program działa tak jak chciałem. Na bieżąco rejestrowany jest obraz z kamery USB i za pomocą dwóch przycisków wykonywane są dwa zdjęcia, a następnie za pomocą trzeciego program odejmuje je od siebie. Wrzucam link gdyby ktoś w przyszłości potrzebował.
Załączniki
Cam_odejmowanie4.vi
(61.41 KiB) Pobrany 402 razy
ODPOWIEDZ