2012年08月05日

光源の自動設定

ディスク上に円錐を置き、それが落とす影の方向によって、光源の方角と高度を推測し、自動的にライトを設定するようにしてみました。日時計と似たような原理です。

円錐が登場することにより、また不自然さが出てきてしまいますが(笑)。

cone and shadow
ラベルが白いお陰で、影とのコントラストが強くなってくれています。

graph
単位角度毎の影の検出量をグラフ化したものです。楕円の短軸上にある円錐の頭はマスクして、影の方角を算出します。

この後、影の長さも測定して、光源の高度も算出します。

rendered with light
得られた方角と高度を無限光源に適用し、レンダリングした画像です。

円錐については、これといった万国共通のものが見付かりませんでした。

それに、撮る角度がローアングルですと、円錐の頭がディスクの外郭線に重なってしまいます。また、実際の光源が低く傾いても、影が伸びてディスクの外郭線に重なってしまいます。その都度、高すぎず低すぎずのものを選ぶしかないようです。

そこで、使用する円錐の高さは特に決めず、画像から自動算出するようにしました。


posted by foilskin at 00:24 | comment (0) | WhiteSnake | このブログの読者になる | 更新情報をチェックする

2012年08月01日

主張しないマーカー

風景写真を Poser の背景画像にして、そこにフィギュアなどを配置するために PozARToolKit を利用するような場合、四角い白黒のマーカーではコントラストが強いため、写真の中で目立ってしまいます。

一方、マーカーを使用しないマーカーレスのものは、試したことはありませんが、特徴ある静物をトラッキングするために、見る角度が少しずつ変化していくような動画である必要があるようです。

何とか静止画像で、あまり目立たなくする方法を探していたところ、CD-R や DVD-R などのラベルの白いディスクをマーカーとする方法を考え付きましたっ。

original photo
今回、この画像を使います。実に日常的な風景写真ですね(笑)。

thresholding
二値化したところです。RGB ではなくて HSV での明るさ成分で白黒判定しています。

labeling, outline, major axis
ラベリングして、外郭線を抽出して、楕円の長軸を算出したところです。

検証のため、ラベル毎に別の色で塗り潰してあります。ラベリングというのは、ピクセルの固まり毎にグルーピングしてラベルを貼っていく作業です。ペイントツールで一度に塗り潰される領域、と言えば解り易いかも知れません。画像左上からスキャンしていくラベリング方法では、右肩上がりの線の場合に複雑になるので、敢えてそのような写真を撮ってみました。

赤線は外郭線、青い点線は長軸です。

rendering
ドリーカメラの位置と姿勢を算出してレンダリングしたところです。

CD/DVD なら大きさは規格で決まっていて万国共通ですし、その辺に転がっていても違和感は無いですよね? (いや、地面に転がっていたら変だ)
posted by foilskin at 00:10 | comment (0) | WhiteSnake | このブログの読者になる | 更新情報をチェックする
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。