Witam wszystkich,
Piszę aplikację w labview w której potrzebuję wykonać rzecz następującą: otóż po wczytaniu do aplikacji obrazu 24-bitowego potrzebuję aby aplikacja przekonwertowała ten obraz na postać 8-bitową. Oczywiście wiem taką operację można wykonać w zewnętrznej aplikacji np. Irfanview, photoshop. jednak takie aplikacje nie wchodzą w grę, ponieważ one konwertują obraz "nienaturalnie" przez co wartości pikseli są zbyt niskie i moja aplikacja nie działa dobrze. Czy można taki obraz przekonwertować za pomocą narzędzi dostępnych w labview?? Myślałem o tym aby wyciągnąć z obrazu składowe rgb każdego piksela i potem użyć funkcji RGB to color, jednak funkcja ta zwraca zbyt wysokie wartości, a mnie interesuje aby wartość koloru po konwersji mieściła się w zakresie 0-255. Czy ktoś ma może pomysł jak przekonwertować obraz z 24 bit na 8 bit. Dodam że nie interesuje mnie konwersja z rgb na skale szarości. Z góry dziękuję za pomoc ;)
Pozdrawiam!
Pomoc w konwertowaniu obrazu 24-bitowego na 8-bitowy
-
- Posty: 2
- Rejestracja: 03 sty 2015 15:01
- Wersja środowiska: LabVIEW 2012
Re: Pomoc w konwertowaniu obrazu 24-bitowego na 8-bitowy
Jeżeli masz ten obraz zapisany w *.jpg, to sam bloczek Read JPEG File ma wejście use 8 bit color table, które po podłączeniu TRUE konwertuje domyślny obraz 24-bitowy do postaci 8-bitowej.
W innym wypadku możesz po prostu przeskalować wartość każdego piksela do zakresu <0,255>, a następnie przekonwertować do unsined 8-bit integer.
Ja wykorzystywałem LV jedynie do wykreślania rysunków, natomiast nigdy nie próbowałem wczytywać, a następnie przetwarzać obrazu. Pewnie są do tego jakieś toolboxy (zapewne płatne). Pewnie na tym forum takie stwierdzenie uchodzi za zbrodnię, ale ja bym robił przetwarzanie obrazów w MATLABie =P.
W innym wypadku możesz po prostu przeskalować wartość każdego piksela do zakresu <0,255>, a następnie przekonwertować do unsined 8-bit integer.
Ja wykorzystywałem LV jedynie do wykreślania rysunków, natomiast nigdy nie próbowałem wczytywać, a następnie przetwarzać obrazu. Pewnie są do tego jakieś toolboxy (zapewne płatne). Pewnie na tym forum takie stwierdzenie uchodzi za zbrodnię, ale ja bym robił przetwarzanie obrazów w MATLABie =P.
-
- Posty: 2
- Rejestracja: 03 sty 2015 15:01
- Wersja środowiska: LabVIEW 2012
Re: Pomoc w konwertowaniu obrazu 24-bitowego na 8-bitowy
Witam,
Dziękuję za odpowiedź. A mógłbyś powiedzieć dokładnie co rozumiesz poprzez stwierdzenie: "W innym wypadku możesz po prostu przeskalować wartość każdego piksela do zakresu <0,255>, a następnie przekonwertować do unsined 8-bit integer." Z góry dziękuję za odpowiedź!
Pozdrawiam!
Dziękuję za odpowiedź. A mógłbyś powiedzieć dokładnie co rozumiesz poprzez stwierdzenie: "W innym wypadku możesz po prostu przeskalować wartość każdego piksela do zakresu <0,255>, a następnie przekonwertować do unsined 8-bit integer." Z góry dziękuję za odpowiedź!
Pozdrawiam!
-
- Posty: 641
- Rejestracja: 31 gru 2010 01:36
- Wersja środowiska: LabVIEW 2017
- Lokalizacja: Katowice
Re: Pomoc w konwertowaniu obrazu 24-bitowego na 8-bitowy
24-bitowy obraz to po prostu 8 bitów R, 8 bitów G, 8 bitów B. Rozbij tę liczbę na bity (Number to boolean array), wyciągnij poszczególne składowe (Array subset), skonwertuj je na U8 (Boolean array to number), wyciągnij średnią - i masz "szarą" wartość piksela.
Czasem modyfikuje się to wyciąganie średniej na wersję ważoną, która lepiej oddaje percepcję człowieka. Wtedy używa się wzoru:
0.2 R + 0.72G + 0.07B
Dlaczego tak i jakie jeszcze tajemnice kryje konwersja RGB do skali szarości - polecam internety.
Czasem modyfikuje się to wyciąganie średniej na wersję ważoną, która lepiej oddaje percepcję człowieka. Wtedy używa się wzoru:
0.2 R + 0.72G + 0.07B
Dlaczego tak i jakie jeszcze tajemnice kryje konwersja RGB do skali szarości - polecam internety.
- jogurt_owocowy
- Posty: 1317
- Rejestracja: 30 lis 2004 00:00
- Wersja środowiska: LabVIEW 2015
- Lokalizacja: Kraków
Re: Pomoc w konwertowaniu obrazu 24-bitowego na 8-bitowy
Chodzi Ci o konwersję obrazu RGB na obraz indeksowany?Czy ktoś ma może pomysł jak przekonwertować obraz z 24 bit na 8 bit. Dodam że nie interesuje mnie konwersja z rgb na skale szarości.
Zobacz przykład w załączniku.
- Załączniki
-
- 24-bit to 8-bit Image Conversion Example.zip
- LV 2012
- (25.41 KiB) Pobrany 532 razy