Jsou mi známy 3 metody konverze barevného obrazku do šedivého.
Lightness method
Průměrování nejmenší a nejvyšší barvy
max = Math.Max(r, Math.Max(g, b));
min = Math.Min(r, Math.Max(g, b));
c = (max + min) >> 1; -- toto je delení 2. Používám tuto metodu kvůli tomu, že nemusím používat dělení ale bitový posuv.
Average method
Průměrování všech barev
c = (b + g + r) / 3;
b = c;
g = c;
r = c;
Luminosity method
Průměrování všech barev s přihlédnutím k citlivosi lidského oka k jednotlivým barvám. Lidské oko nejintenzivněji vnímá zelenou.
c = 0.21 R + 0.72 G + 0.07 B
Originální obrázek
Lightness
Average
Luminosity
© Bura.cz