2011/03/20

詳解OpenCVの練習問題(5)

今日は5章の練習問題を解いていきます。

 1.特徴の多い画像をロードし、cvSmooth()でsmoothtype=CV_GAUSSIANを用いて平滑化を行います。
a.平滑化ウィンドウサイズを3x3、5x5、9x9、11x11に設定して、結果を表示します。

色々なウィンドウサイズで平滑化




b.5x5のガウシアンフィルタで2回平滑化したものと、11x11でのフィルタで平滑化したものの結果を比べます。

5x5を2回と11x11を1回
結果:5x5を2回と11x11は似たような結果になるが、11x11の方がぼやけた画像になる。


2.100x100のシングルチャネルの画像を作成します。画像をクリアし、中心のピクセルを255に設定します。
a.画像を5x5のガウシアンフィルタを用いて平滑化して結果を表示します。
b.同じように9x9のガウシアンフィルタでも平滑化を行います。


5x5と9x9
c.5x5のフィルタを2回行ったものと、9x9を1回行ったものを比較します。


結果:5x5を2回行ったものと、9x9を1回行ったものは似たような結果になるが、5x5を2回行ったものの方が全体的な輝度が高いように見える


3.何か画像をロードし、色々な条件でcvSmoothを実行します。
a. param1=param2=9に設定して実行します。param3は色々な値(1,4,6)に設定して結果を比べます。


param1=param2=9, param3=1,4,6

b. param1=param2=0に設定して、param3を色々な値にして結果を比べます。
param1=param2=0,param3=1,4,6

aのときよりも、bの方がぼやけた画像になりました。

c. param1=param2=0にして、param3=1,param4=9に設定して平滑化します。
d. param1=param2=0にして、param3=9,param4=1に設定して平滑化します。
e. cの条件で平滑化し、さらにdの条件で平滑化します。
f. param1=param=2=9、param3=param4=0でフィルタをかけたものと、eの結果を比べます。

c,d,e,f
eとfの結果を比べると、eの方がかなりぼやけた画像になります。
なぜeがぼやけた画像になるかというと、ガウシアン平滑化の場合は下記のような数式でパラメータが計算されるためです。
つまり、param1=param2=0,param3=param4=9の場合は、
param1=param2=57,param3=param4=0にほぼ等しくなる、と考えて良さそうです。
実際に57x57のウィンドウで平滑化をかけると、eと似たような結果になりました。

bがaよりもぼやけた画像になったのは、param1とparam2に0が設定されているので、
param3からウィンドウサイズを計算したため、大きなウィンドウサイズ(param3=4のときは23,param3=6のときは37)になったのでぼやけた画像になったためと思われます。


ソースコードはいつものように別館に置いてあります。

ではまた。

0 件のコメント:

コメントを投稿