Zmiana obrazu kolorowego na skalę szarości
Zmiana obrazu kolorowego na skalę szarości
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 391 razy
-
- Cam_odejmowanie2.vi
- (50.17 KiB) Pobrany 438 razy
Zmiana obrazu kolorowego na skalę szarości
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
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
Extensa - certyfikowani programiści LabVIEW z Krakowa.
Re: Zmiana obrazu kolorowego na skalę szarości
A czy w Twój program też rejestrował sekwencje wybrane przez użytkownika, czy pobierał obrazy automatycznie co jakiś czas?
Zmiana obrazu kolorowego na skalę szarości
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
Extensa - certyfikowani programiści LabVIEW z Krakowa.
Re: Zmiana obrazu kolorowego na skalę szarości
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.
Re: Zmiana obrazu kolorowego na skalę szarości
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ś 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.
W drugim wypadku działa, bo program zrobiłeś zdecydowanie czytelniej i sam się w nim nie zgubiłeś 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 426 razy
Ostatnio zmieniony 05 lut 2013 21:20 przez patka, łącznie zmieniany 1 raz.
Re: Zmiana obrazu kolorowego na skalę szarości
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 438 razy