色の階調変換
- (by K, 2006.09.20)
- I.Tak.さんとの意見の違いの検討・・・というわけじゃないけど、こんな見方もできたなという内容
逆変換
- 256階調を13階調にすることを考えるにあたり、この変換を仮にfとする。この逆変換(13階調を256階調に変換)をgとおく。
- fを生成するに当たって適用したアルゴリズムや丸めの手法でgに相当するものを構築したとき、これがgに完全に等しければ、それはよい変換に(僕には)思える。
- 確か僕の提唱した式は、256階調値をx、13階調値をyとすると、y = 切り捨て(x * 13 / 256); だったと思う。
- もし同じ考え方で逆変換を作るとすると、 x = 切り捨て(y * 256 / 13); になると思う。13階調値をこの式で256階調拡張して、その後にもう一度13階調に戻したら、必ずもとの値に戻ることが保証できるだろうか?
- y' = 切り捨て(切り捨て(y * 256 / 13) * 13 / 256);
- y=0のとき、0に変換される。y=1のとき、0に変換される。だめじゃん!切り捨てにより端数が捨てられていることが影響している。
- ではI.Tak.さん方式はどうなんだろう?四捨五入だから端数が捨てられずに助かるのか?
- y' = 四捨五入(四捨五入(y * 255 / 12) * 12 / 255);
- y=1のとき、1になる。おおやるなー。y=2のとき、2になる。これもOK。
- でもやはり0-255を変換したときに0-12の値の分布が同比率であるほうが僕には好ましく思える。ということで、この性質を保持しつつ、逆変換に強い方法がほしい。・・・階調数が増えるときは切り上げ、とかにすればいいのかな?・・・それもダメかなあ。
- ありえない想定だけど、階調数1から階調数256へ変換するという状況を考えてみる。階調数1というのは全部が色0というわけだけど、これは0-255のどれにするべきなのか?僕の式だと全部0になる。I.Tak.さんの式だと0/0が出現してなんでもあり・・・うーん、これはどっちも甲乙つけがたいなあ。
−ダメだ、もっとよく考えないと。
こめんと欄