| 色彩学 |
|---|
|
//既知の(r,g,b)を、同じ明度の純色の(R,G,B)と同じ明度の灰色(k',k',k')が線型で混合されたものとします
k = max(r,g,b), K = max(R,G,B) //明度 max(k',k',k') = k' //(k',k',k')の明度はk' K = k' = k <=> max(R,G,B) = k' = max(r,g,b) (*式1*) //この三者は明度が同じです min(R,G,B) = 0 (*式2*) //(R,G,B)が純色のため (*注1*) (r,g,b) = s * [(R,G,B) - (k',k',k')] + (k',k',k') (*式3*) //このsを(r,g,b)の彩度と定義します //しかも,(R,G,B)->(r,g,b)との過程は、色相が無い灰色が混ざり入っているだけです //よって色相は変わってはいません、つまり、色相(R,G,B) = 色相(r,g,b) //すると、純色(R,G,B)は(r,g,b)の色相を表します //厳密には、色相は明度と関係無いため、(1/K)*(R,G,B)で色相を表すべきです //式2、式3により => min(r,g,b) = s * [min(R,G,B) - k'] + k' = 0 - s*k' + k'' => s = [k' - min(r,g,b)] / k' => s = [max(r,g,b) - min(r,g,b)] / max(r,g,b) (*式1によります) //式3は即ち (R,G,B) = (1/s)*(r,g,b) - (1/s-1)*(k',k',k') => (R,G,B) = max(r,g,b) / [max(r,g,b) - min(r,g,b)] * (r,g,b) - min(r,g,b) / [max(r,g,b) - min(r,g,b)] * (k',k',k') = max(r,g,b) / [max(r,g,b) - min(r,g,b)] * (r,g,b) - min(r,g,b) / [max(r,g,b) - min(r,g,b)] * (max(r,g,b),max(r,g,b),max(r,g,b)) //しかも、次の関係が成り立ちます //先ず、mid(x,y,z) = x + y + z - max(x,y,z) - min(x,y,z) とします //便利上、max(R,G,B) mid(R,G,B) min(R,G,B) を MX, MD, MN と書きます //max(R,G,B) mid(R,G,B) min(R,G,B) を mx, md, mn と書きます MD md*mx/(mx-mn) - mx*mn/(mx-mn) md - mn -- = ----------------------------- = ------- MX mx*mx/(mx-mn) - mx*mn/(mx-mn) mx - mn (*注1*) // もしmin(R,G,B)?0ならば、必ず(R,G,B)の中から灰色の(x,x,x) (x>0)を分解し出せます // そして(R,G,B)は純色(何の灰色も混ざり入っていません)のため、必ずmin(R,G,B)=0が成り立ちます |