Sunt familiarizat cu spațiile de culori aditive (RGB), subtractive (CMYK) și HSV, dar un articol În prezent, încerc să înțeleg operează pe YCbCr spațiu de culoare pentru segmentarea imaginii / definirea obiectului.
Mi-am petrecut cea mai mare parte a dimineții căutând ceva care să explice în mod natural YCbCr, dar pur și simplu nu-l înțeleg. Am primit o explicație drăguță și intuitivă a ideii generale din spatele acestui spațiu de culoare aici și explicații despre modul în care este folosit pentru codarea / compresia imaginilor din acestea băieți (toate pe photo.SE).
Formulele pentru calcularea YCbCr din RGB sunt ușor accesibile pe wikipedia .
Am primit motivația pentru această reprezentare, am primit că componenta Y conține cea mai importantă (pentru ochiul uman) ) informații la scară de gri despre imagine.
Am obținut că Cb și Cr poartă informații despre culorile și că (datorită (in) sensibilității ochiului uman), ele pot să fie comprimat fără un vizibil pierdut în calitate. Dar, ce reprezintă de fapt fiecare dintre componentele de crominanță?
După cum menționează autorii articolului că ” informațiile de crominanță sunt esențiale în definirea obiectelor „în abordarea lor și nu pot înțelege pe deplin ceea ce„ citesc cu actualul meu „Y este intensitatea, Cb și Cr poartă informațiile de culoare cumva„ nivelul de înțelegere a YCbCr.
Caut un răspuns de-a lungul liniei „Cb este …, în timp ce Cr este …” sau „dacă îți imaginezi că te uiți prin / cu XY,„ te uiți de fapt la componenta Cb … ” , sau un alt mod care m-ar ajuta să înțeleg informațiile transportate de fiecare dintre componente separat, nu doar că acestea, împreună, conțin informații despre culoare.
EDITĂ
Permiteți-mi să dau exemple de explicații intuitive pentru alte spații de culoare de tipul pe care îl caut:
RGB : Ca strălucirea unui bliț colorat lumină pe un perete negru: dacă străluciți cu o lanternă albastră, vedeți o reflexie albastră. Dacă adăugați o lanternă roșie, aceasta va afișa o reflexie magenta, care este un amestec de albastru și roșu.
CMYK : La fel ca amestecarea acuarelelor, „adăugați culorilor pe care le reflectă suprafața”, (adică scade culoarea din fundal), deci dacă amestecați unul galben cu unul cyan, dacă va reflecta verde și astfel veți obține o culoare verde.
HSV : Copiii mici sunt atrași de obiecte foarte saturate, nu luminoase (valoare ). Componenta Hue este ceea ce „dă culoarea”, în timp ce saturația redusă înseamnă că culoarea este „diluată” de alb. Schimbarea valorii face ca totul să fie mai luminos sau mai întunecat.
Cu aceste definiții, am reușit să am o impresie intuitivă despre ceea ce înseamnă o reprezentare a culorilor în fiecare spațiu de culoare, fără a memora diagrame pentru fiecare dintre ele. .
Răspuns
YUV (sau YCbCr) este ca HSV, dar în coordonate diferite. (Diferența dintre YUV și YCbCr este marginală – în mare parte legată de formule exacte).
Componenta $ V $ este aceeași. $ (S, H) $ poate fi gândit ca coordonate polare și $ (U, V) $ ca cartezian. $ H $ este unghiul și $ S $ este raza. O conversie aproximativă ar fi:
$ U = S \ cdot \ cos (H) $
$ V = S \ cdot \ sin ( H) $
Puteți vedea acest link pentru mai multe informații rmație.
Un alt lucru de adăugat la lista dvs. de intuiții:
Saturația este cât de pură este culoarea din punct de vedere spectral . De exemplu, un laser are un spectru foarte îngust, ceea ce implică o saturație ridicată.
Comentarii
- puteți adăuga explicația diferenței dintre YUV și YCbCr, din motive de completitudine?
- @Andrey Rubshtein, Dacă un laser are o saturație ridicată, este adevărat inversul? Cu alte cuvinte, dacă măsoară RGB și convertesc la HSV, saturația ridicată implică faptul că trebuie să provină dintr-o sursă laser coerentă? Vă mulțumim.
- @Frank, nu neapărat un laser. Dar ‘ este greu să ai o culoare saturată cu un spectru larg, deoarece cu cât este mai largă, cu atât este mai greu să ai un răspuns ridicat într-o singură componentă.
- @Andrey Rubshtein, Vă mulțumim pentru răspuns. Unitățile mks ale intensității de saturație sunt energie pe unitate de timp pe unitate de suprafață. . Unitățile mks ale fluenței energiei de saturație sunt energie pe unitate de suprafață.unde impulsurile laserului în stare solidă sunt lungi, între 10 și 50 ns (nanosecunde). Saturația ridicată cu un spectru foarte îngust implică faptul că trebuie să provină dintr-o sursă laser coerentă?
- @Andrey Rubshein. Ești pe deplin corect .. Tocmai am aflat că LED-urile emit lumină care este cam monocromatică, la fel ca și luminile de sodiu de joasă presiune. Există caracteristici distincte ale indicatoarelor laser coerente pe care le-ați putea folosi pentru a distinge fasciculele indicatorilor laser în afară de imaginea generală observată printr-o fereastră a cabinei aeriene Boeing 737?
Răspuns
Nu sunt sigur ce înțelegeți prin „de fapt”, deoarece nici RGB, nici YUV nu reprezintă frecvența fotonului sau răspunsurile tipice ale tijei / conului ochilor umani. Dar puteți vedea cum arată pentru dvs. prin sintetizarea unor patch-uri de culoare YCrCb, cum ar fi (1,1,0), (1, -1,0), (1,0,1), (1,0, – 1), etc.
Aici „o pagină Wikipedia care include o diagramă:
http://en.wikipedia.org/wiki/File:YCbCr-CbCr_Scaled_Y50.png
ADĂUGAT: RGB și altele au fost aproape concepute (sau evoluate) pentru a se potrivi unei posibile înțelegeri intuitive umane a percepției (iar numele culorilor se dovedesc a fi învățate cultural). YUV este opusul, conceput astfel încât zgomotul din zona UV (adăugat la o sub-bandă NTSC zgomotoasă) să fie greu de văzut și, astfel, să fie mai greu de descris. YCrCb este o variație a aceleiași mapări de culori. Deci, nu căutați un existent perspectivă „intuitivă”, care poate să nu existe. Poate creați-vă propriul „învățând” graficul și construind câteva conexiuni neuronale noi, care ar putea să nu existe în prezent în creier (sau ceva de genul acesta).
Comentarii
- Am adăugat exemple pentru alte spații de culoare de tipul pe care aș dori să îl obțin pentru YCbCr. Sper că acest lucru face ca tipul de explicație pe care ‘ îl caut mai clar.
Răspuns
Când înțelegeți HSV / HSB nu ar trebui să fie greu să înțelegeți YCbCr. Canalul B din HSB corespunde cu croma (chroma = saturation http://vident.com/products/shade-management/color-theory/understanding-color-overview/hue-value-and-chroma/ ). Puteți lua imaginea rgb și să o convertiți în tonuri de gri sau puteți converti fiecare canal al RGB în tonuri de gri și le îmbină într-un singur canal. Pentru simplificare, să avem pixel cu 100% roșu, 100% verde și 70% albastru. Veți calcula media … (100 + 100 + 70) / 3 și veți obține valoarea 90%, ceea ce înseamnă 90% luminozitate Deci, în nuanțe de gri este o culoare gri deschis. Acum, dacă am dori să exprimăm culorile originale către canalul în nuanțe de gri, am avea nevoie de 3 formule pentru fiecare culoare (roșu, verde, albastru). Ați calcula diferența de valoare R vs. scară de gri, G vs scară de gri și B vs scară de gri. Acest lucru ar necesita 4 canale (RGB + cromă). Dar putem face același lucru cu 3 canale. Putem face o mică corecție a canalului verde. Să calculăm diferența cu canalul verde. Verdele original este de 100%, noua valoare a verdelui convertit în gri este de 90%. Diferența este de -10%. Deci, să schimbăm canalele R și B ale acestui pixel prin această diferență. Tocmai am făcut corecția gamma sau toate canalele. Valorile canalului verde vor fi aceleași ca și pentru imaginea în tonuri de gri. Deci nu mai calculăm cu canalul verde. Verde este „codificat” „în canalul Y … chroma. Restul culorilor (R, B), este, de asemenea, ajustat. R` = 90% din original sau 100% din Y deoarece R și B sunt egale în acest exemplu. Compusul B are diferență + 20% față de original, dar după ce a fost modificată cu corecția gamma are diferență + 30% față de Y. Pentru a simplifica mai mult, este ca o formulă în care trebuie să adăugați pentru toți cei trei compuși. pentru roșu și albastru sunt Cb și Cr. Personajele spun doar că ați comparat canalul albastru cu canalul chroma și canalul roșu cu canalul Chromma. Prin urmare, Cb și Cr.