Zwartość określonego koloru w obrazie

Tematyka związana z tworzeniem aplikacji w LabVIEW do obsługi wizji oraz wszelkich operacji na obrazie.
seprob
Posty: 14
Rejestracja: 04 maja 2011 11:01
Wersja środowiska: LabVIEW 2009

Zwartość określonego koloru w obrazie

Post autor: seprob »

Witam! Jak mogę uzyskać procentową zawartość określonego koloru w danym obrazie?
AGF
Posty: 109
Rejestracja: 26 lut 2010 13:41
Wersja środowiska: LabVIEW 2010
Lokalizacja: Bydgoszcz

Re: Zwartość określonego koloru w obrazie

Post autor: AGF »

polecam funkcje z palety funkcji programing->graphic and sound
i tu odczytaj obraz za pomocą "read jpg file" następnie rozłąż na tabele 2-D pikseli za pomocą "fllaten pixmap".
Tu możeż wyiterować komórki tabeli w podwujnej pętli for po elementach tabeli z porównaie i już będzie wynik.
seprob
Posty: 14
Rejestracja: 04 maja 2011 11:01
Wersja środowiska: LabVIEW 2009

Zwartość określonego koloru w obrazie

Post autor: seprob »

Ostatniego zdania nie za bardzo rozumiem. Zrobiłem to co mówiłeś i na końcu dostaję typ danych "image data" i tam są różnorakie wartości. Jak dokładniej mam teraz postąpić?
AGF
Posty: 109
Rejestracja: 26 lut 2010 13:41
Wersja środowiska: LabVIEW 2010
Lokalizacja: Bydgoszcz

Re: Zwartość określonego koloru w obrazie

Post autor: AGF »

Wartości w komórkach tabeli 2-d to kody RGB kolorów. Możesz je porównywać z kodem zadanego koloru. Chodzi o wyjście 24-bit pixmap.
seprob
Posty: 14
Rejestracja: 04 maja 2011 11:01
Wersja środowiska: LabVIEW 2009

Zwartość określonego koloru w obrazie

Post autor: seprob »

Zrobiłem to w ten sposób, że z Flatten Pixmap dałem do Unflatten Pixmap, następnie wyjście dałem do Unbandle By Name i tam mam tablicę dwuwymiarową z wyjścia "image". I tutaj już nie rozumiem za bardzo. Pierwsza wartość określająca indeks tablicy ma wartość maksmalna ponad 4 miliardy, natomiast druga maksymalnie 255 jak RGB.
Awatar użytkownika
smiga
Administrator
Posty: 800
Rejestracja: 04 paź 2009 12:41
Wersja środowiska: LabVIEW 2016
Lokalizacja: Słupsk

Re: Zwartość określonego koloru w obrazie

Post autor: smiga »

Nie wiem na jakim obrazie pracujesz, ale to właściwie nie powinno mieć większego znaczenia - poniżej masz w miarę uniwersalne podejście:
Załączniki
RGB.png
RGB.png (46.53 KiB) Przejrzano 13906 razy
__ Arkadiusz Śmigielski, tel. 662 01 01 74___
ObrazekObrazekObrazek
seprob
Posty: 14
Rejestracja: 04 maja 2011 11:01
Wersja środowiska: LabVIEW 2009

Zwartość określonego koloru w obrazie

Post autor: seprob »

Druga i przedostatnia kontrolka to co to za funkcje bo nie mogę znaleźć?
seprob
Posty: 14
Rejestracja: 04 maja 2011 11:01
Wersja środowiska: LabVIEW 2009

Zwartość określonego koloru w obrazie

Post autor: seprob »

Ok, już mam. Sorry, że tak pytam chociaż powinienem poszukać ale zależy mi na czasie.
Awatar użytkownika
smiga
Administrator
Posty: 800
Rejestracja: 04 paź 2009 12:41
Wersja środowiska: LabVIEW 2016
Lokalizacja: Słupsk

Re: Zwartość określonego koloru w obrazie

Post autor: smiga »

Sorki, od razu mogłem ułatwić włączając label'e ;)

Coś wychodzi?
Załączniki
RGB.png
RGB.png (50.68 KiB) Przejrzano 13892 razy
__ Arkadiusz Śmigielski, tel. 662 01 01 74___
ObrazekObrazekObrazek
seprob
Posty: 14
Rejestracja: 04 maja 2011 11:01
Wersja środowiska: LabVIEW 2009

Zwartość określonego koloru w obrazie

Post autor: seprob »

Jeszcze parę niejasności jest. :) Jakiego typu obrazu może przyjmować IMAQ ColorImageToArray? Gdy wpisuję śćiężkę do pliku JPG to wywala mi błąd.
PiDi
Posty: 641
Rejestracja: 31 gru 2010 01:36
Wersja środowiska: LabVIEW 2017
Lokalizacja: Katowice

Re: Zwartość określonego koloru w obrazie

Post autor: PiDi »

Jeśli chcesz tylko sprawdzić zawartość danego koloru w obrazie, to zaprzęganie IMAQ nie jest konieczne i można pójść za propozycją AGF:
kolory.vi
LV2009
(8.51 KiB) Pobrany 379 razy
Odpowiem jeszcze na jedno, bo nikt nie podjął tego:
seprob pisze:Zrobiłem to w ten sposób, że z Flatten Pixmap dałem do Unflatten Pixmap, następnie wyjście dałem do Unbandle By Name i tam mam tablicę dwuwymiarową z wyjścia "image". I tutaj już nie rozumiem za bardzo. Pierwsza wartość określająca indeks tablicy ma wartość maksmalna ponad 4 miliardy, natomiast druga maksymalnie 255 jak RGB.
RGB ma to do siebie, że na każdą barwę przypada 8 bitów, czyli wartość maksymalna dla jednej barwy to 255. ALE jeśli mamy trzy barwy, to musimy je upchnąć w jednej liczbie, czyli łączymy 8 bitów R, 8 bitów G, 8 bitów B, czyli razem dostajemy 24 bity - maksymalnie w zapisie decymalnym mamy wartość 16,777,215. Możemy do tego dołożyć jeszcze 8 bitów znaczących na parametr alpha i dostaniemy w sumie 32 bitową liczbę o wartości maksymalnej 4,294,967,295. I takie coś pewnie dostałeś w swoim rozwiązaniu.
ObrazekObrazekObrazekObrazek
Awatar użytkownika
smiga
Administrator
Posty: 800
Rejestracja: 04 paź 2009 12:41
Wersja środowiska: LabVIEW 2016
Lokalizacja: Słupsk

Re: Zwartość określonego koloru w obrazie

Post autor: smiga »

PiDi ma trafne uwagi - można prościej bez IMAQ'a.
Idąc konsekwentnie w stronę bloczków IMAQ'a dodaj poniższe i możesz czytać z pliku:
Załączniki
rgb_jpg.png
rgb_jpg.png (16.25 KiB) Przejrzano 13876 razy
__ Arkadiusz Śmigielski, tel. 662 01 01 74___
ObrazekObrazekObrazek
seprob
Posty: 14
Rejestracja: 04 maja 2011 11:01
Wersja środowiska: LabVIEW 2009

Zwartość określonego koloru w obrazie

Post autor: seprob »

Mam nadzieję, że nie za dużo wymagam od was bo i tak bardzo dużo pomogliście ale czy dałoby rade tak zrobić, żeby spróbkować konkretny kolor z grafiki i sprawdzić jego procentową zawartość?
PiDi
Posty: 641
Rejestracja: 31 gru 2010 01:36
Wersja środowiska: LabVIEW 2017
Lokalizacja: Katowice

Re: Zwartość określonego koloru w obrazie

Post autor: PiDi »

Chodzi o to, że klikasz sobie na obrazku i dostajesz kolor klikniętego piksela? Można skorzystać z property node kontrolki obrazka o nazwie Mouse - zwraca informacje o zachowaniu myszki na obrazku.
Załączniki
klikanie_kolorow.vi
LV2009
(43.55 KiB) Pobrany 360 razy
ObrazekObrazekObrazekObrazek
ODPOWIEDZ