hirax.net::Keywords::「ハイライト」のブログ



1999-08-10[n年前へ]

WEBページは会社の心 (色弱と色空間 その2) 

WEBページのカラーを考える 3

 前回、

で色弱の人の感じる色空間について少し考えてみた。また、などで、WEBページの配色やレイアウトからその会社自身について考察してみたことがある。今回は、それらを組み合わせてみたい。前回考えたやり方(ある錐体の情報を無くした際に得られる色空間をシミュレーション計算する)で色々なWEBページを解析してみるのだ。

 その結果として得られるものは、会社の「心」を示しているかもしれない、と思うのである。

 まずは、そのためのプログラムを作成してみた。といってもごく簡単なユーティリティーである。画像ファイルを読みこみ、RGBデータの内任意の1チャンネルの情報を削除した画像を作成するのである。
 実作成時間は15分程である。使いやすさはほとんど考えていないし、ボタンの押す順番によってはプログラムが簡単に落ちるというゲーム代わりにもなるものである。もし、使いたい人がいるならば、そこらへんはちゃんと直すつもりだ。それでも使うのは簡単だとは思う。今のところ、私以外に使う人がいるとも思えないので、こんなもので構わないのだ。

 簡単に今回作成したプログラムTrueColorの動作画面を説明する。

TrueColorの動作画面
1.起動する
2.ファイルを読みこむ
3.RGBの内1色=0
4.RGBの内1色=他の2色の中間

 TrueColorは画像ファイルを読みこみ、

  1. RGBの内の1チャンネルを全て0にする
  2. RGBの内の1チャンネルを他の2チャンネルの平均値にする
という2種類(RGBの内どのチャンネルにその処理をするかでさらにその3倍の6種類)の処理を行うことができる。RGBの内の1チャンネルを他の2チャンネルの平均値にするというのは、一つのチャンネルの情報を欠如させた上で、なおかつ自然な画像を得ようとしたものである。これらの処理は実際の色盲の方の感じ方とはかなり異なるとは思うので、処理の選択の個所に関して、わざと名前を通常使われないであろうものに変えている。
また、画像読みこみに関してはSusieプラグインに対応している。

 使う人がいるとも思えないが、一応ここからダウンロードできる。

truecolor.lzh 360kB


 それでは、各社のWEBページを調べてみる。各社のWEBを見た上で、一番識別が困難になりそうな条件で解析を行ってみた。その結果、前回調べた7社中(ただし、今回は日本国内の会社のみ)では、ある1社以外は何の問題もないように思われる。大丈夫と思われる例を示してみよう。これはアップル株式会社である。

アップル株式会社
オリジナル
赤のチャンネルを他の2チャンネルの平均値にする

 特に見にくい個所は見当たらない。それは他の会社についても同様であり、ある1チャンネルの情報を欠如させても特に識別しにくい個所は見当たらなかった。

 さて、問題があると思われる1社はどこだろうか? そう、RICOHである。ただでさえ、見にくいデザインなのであるが赤のチャンネルの情報を削除すると文字の識別が困難になるボタンがある。このボタンのデザインは非常に見にくい。

RICOH
オリジナル
赤のチャンネルを他の2チャンネルの平均値にする

 RICOHは内容的には非常に素晴らしいWEBなのだから、WEBの色にももう少し気を配ると良いと思う。内容が伝わらない可能性があるというのは、非常にもったいないと思う。

 さて、他のWEBも調べてみよう。気を配っているはずの厚生省だ。

厚生省
オリジナル
緑のチャンネルを他の2チャンネルの平均値にする

 1箇所ハイライト部分が識別不能(ハイライトになっていることを)であることを除けば、問題は無いようである。

 さて、他のWEBを調べるなら当然本WEBについても調べなければならないだろう。

hirax
オリジナル
赤のチャンネルを他の2チャンネルの平均値にする

 背景に色をつけているので、若干見にくいとは思うが、うーん、落第かな... どうしたものか。

2001-08-07[n年前へ]

「ボケ」た背景で包み込め 

デジカメ画像をキレイにボカそう アルゴリズム編

 最近、新しいデジカメを物色中である。私はこれまではFinePix4700zを使っていたのだけど、そのFinePixが半年程度で壊れてしまった。というわけで、C-4040ZOOMがどんなものか期待しているところである。

 壊れたFinePixと言えば、そもそも壊れたFinePixは一台ではなかった。私はすでにFinePixを二台も買っているのだ。そして、もうすでに二台とも壊れてしまっているのである。連続殺人事件ならぬ、連続カメラ自殺事件なのである。

 まず、一台目に買ったFinePix700ははメキシコのティファナでポケットから落としたら、バッテリーから電源が供給されなくなった。もちろん、ACアダプターを使えば立派に動くのだけれど、それでは少しばかり機動性に欠けてしまう。まさか発電機を持ち歩くわけにはいかないし、コンセントの近くでしか撮影することができないとなると、それは非常に困ってしまう。そこで、すかさず二代目としてFinePix4700zを私は買った。ところが、買ってから半年位たったある日、今度は勤務先の駐車場でポケットから落としてしまった。すると、今度はファインダー視野がズームに連動しなくなって、なおかつレンズがまるでジョイスティックのようにあらゆる方向に曲がるようになってしまった。

 こんな風にデジカメはとっても壊れやすくて、半年毎にデジカメ出費を強いられる私に周囲は「落としたオマエが悪い」と非常に冷たいのである。残念なのだ。「そういうのは壊れたんじゃなくて、壊したんだ」と被害者である私をまるで加害者のように告発する人さえいるのである。連続カメラ自殺事件は実は他殺で、しかも犯人は私だと告発する輩さえいるのだ。ひどい話である。
 

 ところで、C-4040に期待しているのは、コンパクトで、レンズアダプターが使えて、レンズがF1.8と明るいことなのである。コンパクトなのは持ち歩くために必要だし、私はなんと言っても超広角デジカメが欲しいのだが、そんなデジカメはないので、ワイドコンバーターを付けたいのでレンズアダプターが必要なのである。明るいレンズの方は、うす暗い中でも撮影する時に重宝しそうなので、少し期待しているのである。
 

 ところで、この位明るいレンズであれば、もう少しぼかすことができるものだろうか?デジカメで写真を撮ってもどうしてもボケない。35mmフィルムを使っているカメラなどと比べるともう全然ボケない。もうほんとにボケない。

 例えば、35mmカメラで135mm F4.5開放のレンズなら、ピントの合ってない背景はこの位はボケる。これは京都の哲学の道近くにある吉田山で撮った写真だ。
 

35mmカメラで撮影した例 135mm F4.5?

 

 ピントが合っている位置以外は光がボケて、キレイなボケが発生する。どちらの写真も絞りは開放で撮影しているので、後ろの風景はほぼ丸くボケている。ぼかせばキレイというわけではないけれど、背景などがごちゃごちゃしている中で対象物だけを浮き上がらせたい場合には、「ボケ」させるととても良い感じになる。
 

 しかし、デジカメではそうそう簡単にボケた画像を撮影することはできない。35mmフィルムに比べて、CCDサイズが小さいからである。35mmカメラよりAPSカメラはもっとぼけなくて、それよりデジカメはさらにボケないのである。そんな様子を見るために、二台目として買ったFinePix4700zで「ボケ」を意識して撮影してみたものが下の写真である。手前の植物にピントが合って、奥の道の先はボケてはいるのだけれど、それでも先程の写真などとは比べものにならないほどわずかしかボケていない。
 

在りし日のFinePix4700zで「ボケ」を意識して撮影してみた写真
(昼過ぎの箱根山中で)

 ところで、このような画像の「ボケ」を考えるとき、「ボケ」た画像をシャープに復元しようという話は非常にポピュラーな話題である。例えば、本「できるかな?」でもこれまでに

といった感じで遊んできた。また、さらには「恋の形」を復元しようとしたとか、このようなアプローチを遥か昔に考えていた漱石の「文学論」を振り返ってみたりしたきたのである。しかし、これらはいずれも「ボケたデータを復元する」という問題であった。

 一方、この逆のアプローチである「シャープなデータをボケたデータにする」という問題も結構ポピュラーである。例えば、音楽をホールやライブハウス風にボケた音にするDSPはかなりの数のオーディオ装置に付けられている。これも、もともとはシャープな音声データが部屋の中でボケていく様子をシミュレートする回路である。また、画像に関する話題でも、ピント位置をずらした複数の画像から任意の「ボケ」画像を作成するといった話題もたまに見かける。

 そこで、「できるかな?」でもデジカメ画像を35mmカメラ風にキレイにぼかすことに挑戦してみることにした。今回は、まずはアルゴリズムを確認して、次回以降で簡単プログラムを作成してみることにしたい。

 まずは、似たようなソフトウェアがあるかどうか、Googleで適当なキーワードを使って検索をかけてみると、IrisFilter(http://www.reiji.net/iris/)というソフトウェアがあった。これは、「写真のぴんぼけを再現する」というフィルターだった。サンプル写真などを見てみると、これがなかなかきれいだった。例えば、早朝の御殿場の路上を「在りし日のFinePix4700z」で撮影した写真にこのフィルタをかけて、「ボケ」を加えてみたのが下の画像である。
 

Iris Filterでデジカメ画像を「ボケ」させたもの
オリジナル画像
Iris Filterで処理したもの

 ここではこんな六角形の絞り形状をを用いてみた。右の処理画像中の、車のテールランプや車の下部を眺めてみると、鋭いハイライト部が六角形に光っているのがわかだろう。確かに、「ボケ」がカメラの絞り形状になっていて、良い感じである。

 WEBページの記載によれば、このIris Filterは「フィルム特性曲線を利用し、レンズから通った光がフィルムを感光させる様子を再現しています」ということである。なんでも、特許も国内・USP共に出願済みということだが、特願2000-100042もU.S.PTO 09/772532も未だ公開にはなっていないようで、残念ながら特許の内容を読むことはできなない。

 このWEBページの記述の中で面白いのは、「データ上の数値をそのまま拡散させる従来のPhotoshopをはじめとした画像処理ソフトと違い、実際のフィルムに当たる光の量(露光量)を逆算し、その露光量をもってピントがずれている様子を再現します」という歌い文句でPhotoshopの「ガウスぼかし」と比較広告してある部分である。

 試しに、先の画像をIris Filterで「ボケ」を加えた画像と、Photoshopの「ガウスぼかし」とで「ボケ」を加えた画像を比較してみると、下の二枚の画像のようになる。確かにIrisFilterの売り文句通り、こうして比較してみるとPhotoshopガウスぼかしが写真の「ボケ」っぽくないのに対して、IrisFilterの「ボケ」が写真のそれっぽいことが良くわかる。
 

Iris Filterの処理画像(左)とPhotoshop ガウスぼかしで処理した画像(右)の比較
Iris Filterで処理したもの
Photoshop ガウスぼかしで処理したもの

 さて、お仕着せのソフトを使ってみるだけではなくて、自分でデジカメ画像をキレイに「ボケ」させてみることにしたい。というわけで、hirax.net風「ボケ」フィルターの動作を考えてみる。

 まずは、毎度のことだがオリジナル画像が「ボケ」る様子を計算する式は

逆フーリエ変換(  フーリエ変換( オリジナル画像 ) x フーリエ変換(ボケ具合 ) )
と表すことができる。詳しくは、「宇宙人はどこにいる?」の回でも読んでもらうことにして、簡単に言えば周波数領域でオリジナル画像とボケ具合を掛け算をしさえすれば良いのである。つまり、今回のデジカメ画像をぼかす場合だったら、
  1. デジカメ画像と「ボケ」具合をそれぞれフーリエ変換し周波数空間に変換
  2. 周波数空間で乗算を行う
  3. 逆フーリエ変換して実空間に戻す
とハイ!「ボケ」画像の出来上がり、というわけである。ボケ具合が小さい場合などは、このやり方よりもずっと計算量の小さいやり方はあるわけだけれど、とりあえずこのやり方はとても単純明解なので今回のように試しでやってみるにはとっても楽な方法なのである。また、ここでいうボケ具合というのは、こんな形状の「ボケ」具合のことである。
 

 じゃぁ、早速やってみようとなるわけだが、その前にもう一つ注意することがある。それは、RGB画像の数値というものは実は元々「明るさを対数変換した値」であるということなのである。人間の目も含めて世の中の大抵の材料は対数的な感度を持っている。例えば、人間の目に「2倍明るい」という場合に、光は「2倍明るい」というわけではない。その場合には指数的にX^2倍明るいのである(ここで、xの値はそれぞれのデバイスによって色々と違う)。その明るさをRGB画像の数値データにする時に、明るさの対数をとってLog[x,X^2]で2という数値として表しているわけだ。

 RGB画像の数値が「明るさを対数変換した値」だというようすの一例を示すと下の図のようになる。
 

RGB画像の数値というものは実は元々「明るさを対数変換した値」である
片対数軸で表した
横軸 = 0〜255の数値データ
縦軸 = エネルギー
線形軸で表した
横軸 = 0〜255の数値データ
縦軸 = エネルギー

 逆に明るさからRGB画像の数値データへの変換グラフは例えばこんな感じである。RGB数値で200と255と言っても実はその明るさは大違いであることがわかると思う。
 

 

 だから、この手の処理を行う際には、まずは指数変換してから処理を行い、そしてその後対数変換してやらなければならないわけだ。もちろん、今回のデジカメ画像をぼかす場合にも、RGB画像の数値をまずは指数変換した後、「ボケ」演算を行って、その演算結果を対数変換でRGB画像の数値に戻してやらなければならないのである。といっても、別に難しい話ではなくて画像を扱う装置だとごく当り前の話だ。

 そう、「ボケ」演算のhirax.net風レシピはたったこれだけ〜というわけで、早速このレシピに従ってhirax.net風デジカメ「ボケ」フィルターをかけてみたのが下の画像である。キレイな「ボケ」画像ができあがっていることが判ると思う。
 

hirax.net風デジカメ「ボケ」フィルター
キレイな「ボケ」画像のできあがり〜

 ところで、デジカメ画像のRGB画像の数値を指数変換したものに「ボケ」演算を行ったわけだけれど、もしRGB画像の数値そのものに対して「ボケ」演算を行ったら、どんな結果になるだろうか?つまり、「データ上の数値をそのまま拡散させる」やり方をしたら、どうなるのだろうか?そこで、試しにRGB画像の数値そのものに対して「ボケ」演算を行ってみるとこんな結果になる。
 

RGB画像の数値そのものに対して「ボケ」演算を行ってみた結果
キレイじゃない…

 何だかボンヤリとにじんだだけの「キレイじゃない」写真になってしまっている。それは、当り前である。本来2倍明るいものはX^2倍明るいわけで、すごく光の量は2倍どころでなく多いわけだ。それが広がる量を仮にRGB数値そのまま2倍として扱ってしまうと、その光の部分は薄暗くなってしまう。コントラストのはっきりしない、ぼんやりとした写真になってしまうわけだ。ちゃんと、X^2倍のデータとして扱ってやらなければならないわけである。

試しに、指数処理したものと線形処理をしたものとを並べてみるとその画像の違いがよくわかるだろう。
 

指数処理した画像(左)と線形処理をした画像(右)の比較
hirax.netレシピの
キレイなボケ画像(指数処理)
 

キレイじゃないボケ画像(線形処理)

 さて、今回はデジカメ画像の「ボケ」フィルターのhirax.net風レシピを確認してみた。次回(と言ってもいつになるか…)以降に、このレシピに従って実際にソフトを作成していこうと思う。
 

 ところで、「文学論」の中で漱石は「ボケ」は焦点的印象又は観念に付随する情緒を意味する、と言っている。それは、言い換えれば「何かの出来事をきっかけとして感じた怒り・悲しみ・喜びなどの感情がボケである」ということだ。そして、さらに言えば、写真で背景をぼかすということは、つまり「背景にある出来事が生みだした怒り・悲しみ・喜びを広く混ぜて包み込む」ということなのである。

 だから、何かを撮影する時に対象物の背景をぼかすということは、「背景にある出来事が生みだした怒り・悲しみ・喜びを広く混ぜて対象物を包み込んで、そして対象物を浮き上がらせる」ということなのかなぁ、とぼんやりと考えてみたりする。そんな写真は対象物を写しこんでいるのと同時に、それを包みこむ背景も写しこんでいるンだろうなぁ、と考えてみたりする。
 

2004-10-23[n年前へ]

Sleipnir の検索ハイライトを見やすくする 

 Sleipnir の検索ハイライトを見やすくする.
Y's Memo - 2004-10-22読書記録ChangeLog / 2004-10-23

2004-11-08[n年前へ]

世界規模ソースコード検索エンジン中間報告 

未踏ソフトウェア創造事業中間報告会: 世界規模ソースコード検索エンジン中間報告 高林哲氏によるIPA 2004年度未踏ソフトウェア創造事業 「石田PM・長尾PM合同中間報告会」での「世界規模ソースコード検索エンジン中間報告」コードネーム gonzui(ナマズ目ゴンズイ科…)は11月29日(いいにくの日って…)に公開予定。JavaScriptでインクリメンタルgrep 検索, JavaScript で複数箇所のキーワードをハイライト等を備えた検索結果の表示インターフェースも非常に使いやすそう。



■Powered by yagm.net