Kezdőoldal » Tudományok » Természettudományok » Hogyan lehet a színtartományok...

Hogyan lehet a színtartományokat egyformán skálázni?

Figyelt kérdés
Tegyük fel, hogy azt akarom megtudni, hogy kék vagy piros színből van-e több egy képen. Ekkor nyilván valami tartományt kell választanom, mert semmi sem egzaktul piros, illetve egy szélesebb tartományt hívunk pirosnak. Ha mundjuk megvannak a pixelek RGB értékei, akkor milyen tartományokat válasszak? Ötletem sincsen, hogy mi alapján határozhatnám meg szisztematikusan objektíve. Ráadásul ennek gondolom két komponense is van, egyrészt, hogy mekkora tartományt nevezhetünk pirosnak, mert mondjuk egy idő után narancssárga vagy rózsaszín lesz a pirosból, de kék esetében a sötétkék és a világoskék is kék. A másik meg az, hogy R G és B értékek egységei között mi a skálázás, stb.

2016. szept. 14. 12:10
 1/2 2*Sü ***** válasza:

A kérdést az dönti el, hogy mit is akarsz kezdeni az eredménnyel, miért fontos. Mondjuk ha a vörös és kék szubpixelek által leadott teljesítményt számítod, akkor mindegy, hogy az adott vörös szubpixel mellett a zöld, kék is ugyanolyan teljesítményt ad le – azaz a szín valójában fehér –, a vörös szubpixel fényerején ez mit sem változtat.


Ha emberi érzékelésről van szó, akkor már maszatosabb a téma. Hány színt különböztetünk meg a szivárványon? Jellemzően 6-8-at szokás felsorolni: vörös, narancssárga, citromsárga, sárgászöld, zöld, türkiz, kék, ibolya. Ez lehet jó kiindulópont, RGB-nél ez 6 színre praktikus felosztani: vörös (#ff0000), sárga (#ffff00), zöld (#00ff00), türkiz (#00ffff), kék (#0000ff), lila (#ff00ff). Bár ez kicsit csalás, a vörös és sárga között az ember túl nagynak érzi a különbséget, általában megkülönbözteti a narancssárgát, viszont a kék és zöld között meg nem érez akkora különbséget, és a türkizt nem feltétlenül különíti el külön színként.


Én mindenféle háttér nélkül azt csinálnám, hogy átkonvertálnám a színeket RGB-ről HSV-re vagy HSL-re (szín, telítettség, világosság/fényerő). (Lásd: [link] illetve [link] ) Vörösnek venném, ami színben a színtiszta vöröstől ±30° távolságon belül van. Esetleg a narancs felé kompenzálnék, azaz -30, +20 tartományt néznék. Illetve kritérium lenne, hogy a telítettség legalább 10-20% legyen, hiszen egy szinte fehérnek tűnő rózsaszínt (#ffeeee) általában nem szoktunk pirosnak hívni. Illetve a fényerőt is legalább 10-20%-os kritériumnak venném, hiszen a nagyon enyhén derengő vöröst (#110000), ami szinte már fekete, megint nem tudnám vörösnek hívni.


Ilyen módon mondjuk:

is_red = ((h<=20) || (h>330)) && (s>20) && (v>10);

is_blue = (h>210) && (h<270) && (s>20) && (v>10);


De mint írtam, a cél szerint lehet ezen módosítani, attól független egzakt megoldása nincs a problémának, a pontos feladatnál is önkényes annak megjelölése, hogy mi piros és mi nem, ott esetleg egy a feladat szempontjából releváns, sokak által kitöltött teszt – amiben színekről nyilatkoznak, hogy az vörös-e vagy sem – adhat némi eligazítást, hogy mit tekintsünk pirosnak, és mit ne.

2016. szept. 14. 14:03
Hasznos számodra ez a válasz?
 2/2 A kérdező kommentje:
hálás köszönet a részletes válaszért, sokat segítettél
2016. szept. 14. 20:41

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!