Znam addytywne (RGB), substraktywne (CMYK) i HSV-podobne przestrzenie kolorów, ale artykuł, który obecnie próbuję zrozumieć, dotyczy przestrzeni kolorów YCbCr do segmentacji obrazów / definicji obiektów.
Większość dnia spędziłem na szukaniu czegoś, co naturalnie wyjaśnia YCbCr, ale po prostu tego nie rozumiem. Mam ładne, intuicyjne wyjaśnienie ogólnej idei tej przestrzeni barw tutaj oraz wyjaśnienie, w jaki jest używany do kodowania / kompresji obrazu z tych facetów (wszystko na photo.SE).
Wzory do obliczania YCbCr z RGB są łatwo dostępne na wikipedii .
Dostałem motywację do tego przedstawienia, dostałem, że składnik Y zawiera najważniejsze (dla ludzkiego oka) informacje w skali szarości na temat obrazu.
Dostałem, że Cb i Cr niosą informacje o kolorach i że (ze względu na (nie) wrażliwość ludzkiego oka) można je skompresować bez widocznej utraty jakości. Ale co właściwie reprezentuje każdy ze składników chrominancji?
Jak autorzy artykułu wspominają, że „informacje o chrominancji mają nadrzędne znaczenie w definicji obiektów” w ich podejściu i nie mogę w pełni zrozumieć tego, co czytam z mojego obecnego „Y to intensywność, Cb i Cr w jakiś sposób przenoszą informacje o kolorze” zrozumienie YCbCr.
Szukam odpowiedzi w stylu „Cb to ..., podczas gdy Cr to ...” lub „jeśli wyobrażasz sobie przeglądanie / z XY, to tak naprawdę patrzysz na komponent Cb ...”, lub trochę inny sposób, który pomógłby mi zrozumieć informacje przenoszone przez każdy z elementów osobno, a nie tylko to, że razem niosą informacje o kolorze.
EDYTOWAĆ
Pozwól mi podać przykłady intuicyjnych wyjaśnień dla innych przestrzeni kolorów, których szukam:
RGB : Jak świecenie kolorowej latarki na czarnej ścianie: Jeśli świecisz niebieską latarką, zobaczysz niebieskie odbicie. Jeśli dodasz czerwoną latarkę, wyświetli ona purpurowe odbicie, które jest mieszaniną niebieskiego i czerwonego.
CMYK : Podobnie jak mieszanie akwareli, „dodajesz kolory, które odzwierciedla powierzchnia”, (tzn. Odejmuje kolor od tła), więc jeśli pomieszasz kolor żółty z cyjanowym, to jeśli odbije się na zielono, a tym samym uzyskasz kolor zielony.
HSV : Małe dzieci pociągają mocno nasycone przedmioty, a nie jasne (wartość). Składnik Barwa „nadaje kolor”, a niskie nasycenie oznacza, że kolor „rozcieńcza” biel. Zmiana wartości sprawia, że całość jest jaśniejsza lub ciemniejsza.
Dzięki tym definicjom mogłem intuicyjnie zrozumieć, co oznacza reprezentacja kolorów w każdej przestrzeni kolorów, bez zapamiętywania wykresów dla każdej z nich.
źródło
Nie jestem pewien, co rozumiesz przez „faktycznie”, ponieważ ani RGB, ani YUV nie reprezentują ani częstotliwości fotonów, ani typowych reakcji pręcików / stożków ludzkich oczu. Ale możesz zobaczyć, jak wyglądają dla Ciebie, syntezując niektóre łaty kolorów YCrCb, takie jak (1,1,0), (1, -1,0), (1,0,1), (1,0, - 1) itp.
Oto strona Wikipedii, która zawiera wykres:
http://en.wikipedia.org/wiki/File:YCbCr-CbCr_Scaled_Y50.png
DODANO: RGB i takie zostały prawie zaprojektowane (lub ewoluowały), aby pasowały do możliwego intuicyjnego zrozumienia percepcji przez człowieka (a nazwy kolorów okazują się być kulturowo wyuczone). YUV jest odwrotny, zaprojektowany w taki sposób, że szum w obszarze UV (dodany do hałaśliwego podpasma NTSC) byłby trudny do zauważenia, a zatem trudniejszy do opisania. YCrCb jest odmianą tego samego odwzorowania kolorów. Nie szukaj więc „intuicyjnego” wglądu, który może nie istnieć. Być może utwórz własne, „ucząc się” wykresu i budując całkiem nowe połączenia neuronowe, które mogą nie istnieć w twoim mózgu (lub coś w tym rodzaju).
źródło
Jeśli rozumiesz HSV / HSB, zrozumienie YCbCr nie powinno być trudne. Kanał B w HSB odpowiada barwie (barwa = nasycenie http://vident.com/products/shade-management/color-theory/understanding-color-overview/hue-value-and-chroma/). Możesz wziąć obraz rgb i przekonwertować go na skalę szarości lub możesz przekonwertować każdy kanał RGB na skalę szarości i scalić je w jeden kanał. Dla uproszczenia zastosujmy piksel ze 100% czerwonym, 100% zielonym i 70% niebieskim. Obliczysz średnią ... (100 + 100 + 70) / 3 i otrzymasz wartość 90%, co oznacza 90% jasności. Więc w skali szarości ma bardzo jasny szary kolor. Teraz, jeśli chcielibyśmy wyrazić oryginalne kolory w kierunku kanału w skali szarości, potrzebowalibyśmy 3 formuły dla każdego koloru (czerwony, zielony, niebieski). Można obliczyć różnicę wartości R w skali szarości, G w skali szarości i B w skali szarości. Wymagałoby to 4 kanałów (RGB + barwa). Ale możemy zrobić to samo z 3 kanałami. Możemy dokonać małej korekty zielonego kanału. Obliczmy różnicę do zielonego kanału. Oryginalna zieleń to 100%, nowa wartość zieleni zamienionej na szarą wynosi 90%. Różnica wynosi -10%. Zmieńmy więc kanały R i B tego piksela o tę różnicę. Właśnie zrobiliśmy korekcję gamma lub wszystkie kanały. Wartości kanału zielonego będą takie same jak dla obrazu w skali szarości. Nie liczymy już zielonego kanału. Zielony jest „zakodowany” w kanale barwy Y ... Reszta kolorów (R, B) również jest dostosowywana. R` = 90% oryginału lub 100% Y, ponieważ R i B są równe w tym przykładzie. Związek B ma różnicę + 20% w stosunku do oryginału, ale po zmianie za pomocą korekcji gamma ma różnicę + 30% w stosunku do Y. Aby uprościć to jeszcze bardziej, jest jak formuła, w której należy dodać wszystkie trzy związki. Różnice, które otrzymujesz dla czerwonego i niebieskiego, to Cb i Cr. Bohaterowie mówią tylko, że porównałeś kanał niebieski z kanałem chrominancji i kanał czerwony z kanałem chrommy. Stąd Cb i Cr.
źródło