2014年9月25日木曜日

VS2012で画像処理


樹氷画像を見て綺麗だなーと思ったのがきっかけ。
木の画像を入力して冬景色っぽいのが出てきたら幸せです。





右が入力画像、左が出力。


以下やったこと。


・IDEはVS2012Express for windows desktopを利用。
 →NuGetを用いて画像処理用のライブラリ導入が非常にスムーズに行えた。
・ライブラリはOpenCVSharpを利用。作者様が日本人だし、ラッピングされてる関数が多いのが素敵。
・色空間はHSVのみを利用。30<h<80。最初はRGBとの論理和だったんだけど、なんだかんだこっちの方が分かりやすい。
・動画処理じゃないのでサボってget2Dとset2D利用。
・明るさの補正が必要だったのでVを係数として利用。


以下ハマったこと。

・最初CV.NETを使おうとしたものの、現時点で対応してるOpenCVのライブラリ群が2.4.8で、いくら探してもインストーラが見つからない為断念。(今の公式発表は2.4.9)
・OpenCVSharpの定数利用は、CVConst.~~。ちなみに色変換の定数はColorConversion.~~。
 Cで書いてたOpenCVと大分違って焦った。


以下やろうとしてること。

・精度上昇
 →入力画像が有る程度理想形なので綺麗に変換されてるが、暗めの緑が多いと難しい。
   (HSVの成分で拾えない)
・雪を降らす
 →こな~ゆき~的な。


Android用に最適化して、カメラと連動してみたい所。
沖縄の風景とかを冬景色に出来たら楽しいだろうなー