HDRiな生活

HDR(ハイダイナミックレンジ)写真の連載。ストックフォトでカメラ機材代の捻出を目論む。


トーンマッピングの「トーン」とはなんぞや?

トーンマッピングの「トーン」とはなんぞや?

カメラ:D700、 レンズ:SIGMA 20mm F1.8 EX DG、ISO:200、絞り優先、ブラケット:-2〜+2、ホワイトバランス:オート

関連写真

  • 2013年6月ストックフォトの売り上げ報告
  • 黄色い不動産@田端
  • ティッシュを何回折ると月に届くかJavaScript
  • 補色螺旋と集中線@田端銀座
  • ヘッダのJavaScript読み込みをincludeっぽくスッキリさせる方法☆
  • tumblr用ハンズフリー自動スクロールブックマークレット

今まで流れに任せてトーンがトーンが言ってましたが、おそらくトーンの定義をした人物の書物を読んだので備忘エントリ。

トーンの定義
ある色が、最大限の刺激純度(彩度)を持つとき、白の混合で薄めたり黒の混合で深めたりするとき、それぞれが変化して異なった色調になることをさす意味だけに限定して、「トーン」の用語を定義したい。

今までにわか知識で漠然と口にしていたことも多く、不安な要素もたくさんあったのですが、とりあえずこれ一冊で、色に関しての知識は網羅できました。

ついでにJavascriptで赤(#ff0000)のトーンを表現してみた

赤の純色を#ff0000とすると、#000000→#ff0000→#ffffffを順番に塗りつぶせばトーンが表現できるなぁと。以下スクリプト。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <script type="text/javascript"> function makeScale() { var color; for(var i=0;i<511;i++){ //000000〜ff0000 if(i<255){ if(i<16){ color = "0" + i.toString(16) +"0000"; }else{ color = i.toString(16) +"0000"; } } //ff0000〜ffffff if(i>255){ if(i<271){ color = "ff0" + (i-255).toString(16) + "0" +(i-255).toString(16); }else{ color = "ff" + (i-255).toString(16) + "" +(i-255).toString(16); } } document.write("<td width='1px' bgcolor='#" + color + "'>"); document.write("</td>"); } } </script> <title>Javascriptで赤(#ff0000)のトーンを表現</title> </head> <body> <table style="border:1px solid #eee;"border="0" cellspacing="0" cellpadding="0" width="510px"> <tr height="20px"> <script type="text/javascript">makeScale();</script> </tr></table> </body></html>

以下、実行結果。

また、現在のweb技術上に限ってはこのトーンは純色の赤のスケールであると定義できる。

こんなどシロウトが寸分の狂い無く純色のスケールを描けるんだから、本当、感謝。シュブルール先生が見たら驚くだろうな。

撮影環境・雑多品

GT0540

D700の重さに耐えつつ、最軽量クラスのGT0540。Gitzoが40%引きの信じられない店、楽天のナニワ。他にも破格の品が定期的に入れ替わっています。

関連記事

コメント: 2

junki 

こんばんは。

なるほど、とても勉強になりました。

>こんなどシロウトが寸分の狂い無く純色のスケールを描けるんだから

これは、多分に javascript も含むPCのプログラミングにおける色の定義が、色空間のうち RGB 空間を採用しているからですね。ディスプレイの画素の明るさとして直接的で直感的でもありますね。

「カラースケール」のうち、左半分は GB はゼロで、R が 0-255 、右半分は R=255 で GB が 0-255 のわけですね。

別の色空間 H(色相)S(彩度)L(明度)で言えば、色相一定で、彩度は最大にして一定、明度だけをスケールしたことになりますね。Toshiro さんが挙げた「トーンの定義」によれば、HSL空間を使うほうが自然で便利です。また、nonbe さんの nanHDR は、この定義によれば、まさしく「トーンマッピングの定義」にそった操作であると思います。

ところで、写真のモノクロ表現の場合、トーンは定義されないんですか?

http://www.blind.co.jp/styling/w_color/c01_sys.html

ここの内容によれば、有彩色の場合は、色相一定で明度と彩度が変化する二次元平面上(SL平面)の変化すべてをトーンと定義していますね。Toshiro さんのコードで示されるスケールはこの平面上で S 最大で L だけが変化する直線に相当しています。無彩色(モノクロ)の場合は、彩度がゼロ、明度だけがトーンであると。

カラーの HDR の場合、明度のスケールだけが重視されていて、彩度が滅茶苦茶に高い作成例が多すぎると感じています。「トーンマッピング」の意味を考える必要がありますね。

Toshiro 

>junkiさん
いえ、まんま転載ですからまだ反芻しきれていません。無彩色はどうなるんでしょうね。グレーの彩度って・・・

>彩度が滅茶苦茶に高い作成例
HDRアプリの仕様上、彩度が高くなるので、その部分のコントロールですね。あくまで"HDRアプリ"はその次の段階への素材に過ぎませんからね。