Diskuze: Převod hodnot RGB na Vlnovou délku
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 8 zpráv z 8.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Musíš znát vzorec na převod, pak už je to jednoduché.
Koukni třeba sem http://www.efg2.com/…/Spectra.htm , je to sice v pascalu, ale myslím, že to z toho pochopíš.
Ve skutečnosti to vlastně ani nějak moc převést nejde, protože RGB barva není jedna barva ze spektra, je to směs 3 barev o 3 různých vlnových délkách, které jen na čípcích oka vyvolají podobný vjem, jako by vyvolala jedna barva o určité vlnové délce. Citlivost čípků i jejich spektrální naladění se může u lidí lišit, přiřazení RGB úrovní je proto věcí statistiky, mezi lidmi mohou být rozdíly ve vnímání "tato jednospektrální barva = tato RGB směs". Dost problematická je fialová barva. Oko ji vnímá jen díky tomu, že červená má u vyšších frekvencí druhý (malý) vrchol a při vnímání chybí podráždění zeleného čípku.
Převod (přibližný, statistický) by bylo tedy možné provést převedením RGB vyjádření barvy na HSL, tedy úhel na barevném kruhu + saturace (sycení) + jas, úhel se už dá potom snadno přepočítat na vlnovou délku (znají se vlnové délky hraničních bodů) ... hue=atan2(1.732(G-B),2R-G-B) je úhel od červené po ultrafialovou (červená=0°, zelená=120°, modrá=240°).
Tento program je zajímavý, bohužel já umím tvořit +- akotat v konzolove aplikaci, takže co se týče nahrání obrázku nemám tušení jak nato. Jinak vzorec na převod tady nevyužiji, bude to pouze přiřazovat již vypočítané hodnoty od 380nm - 780nm. Moc nevím jak nato, a zdali je moje verze s poli vůbec dobrá.
Poradím ti s tím nahráním:
v aplikaci si přidej Reference
System.Windows.Forms;
System.Drawing;
a poté si můžeš načíst bitmapu i barvu pixelu, asi takto http://www.itnetwork.cz/dev-lighter/239
Děkuju moc, kouknu na to a snad to dám nějak dokupy , takže musím odstoupit od mého postupu v konzoli a musím přejít na WindowsFormsApp. jestli to správně chápu?
Nemusíš, akorát některé věci v konzoli nejdou, takže je stačí importovat do konzole.
Zobrazeno 8 zpráv z 8.