セピア調フィルタのうんちく

セピア調について

18世紀中頃〜19世紀初頭にかけて様々な感光剤による写真が発明され、多くのモノクロ写真が作られました。

それらは経年劣化で白が黄ばみ黒はくすみ、全体として色材のセピア(イカ墨)を思わせる茶色味がかった色になる事が多かった故に、古い写真の色調を表す代名詞としてセピア調の言葉が生まれたようです。

image.png
https://en.wikipedia.org/wiki/Photographic_print_toning#Sepia_toning

アナログのセピア調レタッチ

ノスタルジックな感性を刺激する写真を意図的に作る技法として鶏卵紙を使う方法があり、セピア調の写真を作る事ができます。

見ての通り、材料が入手しやすく手間も比較的軽微で、温かみのある写真が好評を博した事から19世紀半ばから20世紀初頭の長い間流行しました。

デジタルのセピア調フィルタ

色マトリックスによる変換が主流です。

良さそうなセピア調フィルタ

CSS sepia filter が採用している係数です。

| R_sepia |   | 0.393 0.769 0.189 | R |
| G_sepia | = | 0.349 0.686 0.168 | G |
| B_sepia |   | 0.272 0.534 0.131 | B |

実際に試せるデモページを作ったので、どうぞ。ついでにビネット(トンネル効果)フィルタもかけてますが、vinette radius を増やす事でその影響を減らせます。

original sepia
image.png image.png

なお、2005年1月号の MSDN Magazine でこの係数が使われているのは確認しました。更にそれより古いソースもありそうなので、ご存知の方、教えていただけると幸いです。(すごく知りたい。数値の根拠も謎ですし)

問題点

white(255,255,255) に対応する sepia-tone を計算すると値がオーバーシュートします。

| 345 |   | 0.393 0.769 0.189 | 255 |
| 307 | = | 0.349 0.686 0.168 | 255 |
| 239 |   | 0.272 0.534 0.131 | 255 |

例えば、グレースケール色であれば、(189, 189, 189)

| 255 |   | 0.393 0.769 0.189 | 189 |
| 227 | = | 0.349 0.686 0.168 | 189 |
| 177 |   | 0.272 0.534 0.131 | 189 |

赤味の強い画像であれば、(255,201, 0)-(255,139,255)

| 255 |   | 0.393 0.769 0.189 | 255 |
| 227 | = | 0.349 0.686 0.168 | 201 |
| 177 |   | 0.272 0.534 0.131 |   0 |

| 255 |   | 0.393 0.769 0.189 | 255 |
| 227 | = | 0.349 0.686 0.168 | 139 |
| 177 |   | 0.272 0.534 0.131 | 255 |

これらの R 又は G の値を 255 で clamp (頭打ち処理)する境目で、色調変換が変わります。具体的には階調がすこし密になります。

grayscale level 0 189 255
(R,G,B) (0,0,0) (255,227,177) (255,255,239)
sepia-tone color 0-0-0.png 255-227-177.png 255-255-239.png

厳密にやりたければグレースケール>セピア変換を曲線で近似するか。いっその事 CLUT にすれば良いのですが、このままでも、それほど気にならないでしょう。

駄目なセピア調フィルタ

以下で解説されている方式です。残念ながらそこそこ普及しています。

V = 0.299 x R + 0.587 x G + 0.114 x B
R" = V x 107/107
G" = V x 74/107
B" = V x 43/107

セピア色の RGB値が (107, 74, 43) なので、R,G,B をその割合にする意図が見えますが、セピア色を正規化した色(255,176,102)を基準にするので色コントラストが上がって赤に寄りすぎ、それを最大輝度とするので全体として暗すぎます。どちらかというと琥珀色で、これはこれでノスタルジックですが、セピア調とは明らかに異なります。

grayscale level 0 107 255
(R,G,B) (0,0,0) (107,74,43) (255,176,102)
sepia-tone(?) color 0-0-0.png 107-74-44.png 255-176-102.png

こちらで試せます。

original sepia (BAD)
image.png image.png

確かに、古ぼけた写真の中にはこういったくすみ方をした写真もありますが、あまり一般的ではないです。
昔のコンテンツには、この誤った方式で変換してる残念なセピア調写真が散見され、画像検索にも混ざってくるので迷惑なものです。

蛇足ですが、上記の駄目な係数でもリニアRGBで計算するとそこそこマシになります。

original sepia (BAD) linear
image.png image.png

まぁでもやっぱり少し暗いですね。惜しい。

参考

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account