2008年11月21日金曜日

画像処理 第6回 線形フィルタ(実験)

こんにちは,以前の投稿が長過ぎたため,実際の例を分けることにしました.
では,早速紹介したこれらのフィルタを,サンプル画像に施してみましょう.

サンプルはFig.1です.これまた,数か月前,北海道で撮影したものです.

Fig.1 サンプル画像


Fig.2 平均化フィルタ(3*3)


Fig.3 平均化フィルタ(5*5)


Fig.4 ガウシアンフィルタ(σ=0.7)


Fig.5 ガウシアンフィルタ(σ=2)


Fig.6 微分フィルタ(横方向)


Fig.7 微分フィルタ(縦方向)


Fig.8 プリューイットフィルタ(横方向)


Fig.9 プリューイットフィルタ(縦方向)


Fig.10 ソーベルフィルタ(横方向)


Fig.11 ソーベルフィルタ(縦方向)


Fig.12 2次微分フィルタ(横方向)


Fig.13 2次微分フィルタ(縦方向)


Fig.14 ラプラシアンフィルタ


Fig.15 鮮鋭化フィルタ

微分,プリューイット,ソーベル,2次微分,ラプラシアンの5つのフィルタは,画素値のエッジを検出するものなので,サンプル画像をグレースケールに変換したあと,フィルタを施しています.フィルタリングした後の画素がプラスなら黄色,マイナスならシアン,としています.

これらのフィルタには,どんな効果があるかということが視覚的に分かったでしょうか.
次回は,線形で無い,非線形なフィルタについて紹介したいと思います.

2008年11月15日土曜日

プロコン

こんばんは.一月ほど前に行われた高専プロコン,行ってきました.
ご存じの方も多いと思われますが,競技部門がシステム未完成のために行われませんでした.
詳細は以下をご覧下さい.

高専プロコンリポート:高専プロコンを襲った魔物の正体とは
http://www.itmedia.co.jp/enterprise/articles/0810/14/news021.html

2日目に試合中止の発表がなされた時は,はっきり言って拍子抜けしてしまいました.競技部門のみの参加でしたので,何もせずに行って帰ってきたようなものです.今月末から来月の頭にかけて,Web上で再試合をやるようですが,熱は冷めきっています.

来年のプロコンは木更津高専で行われます.来年参加しようか,躊躇している処です.現在,プロコン以外のコンテストに興味を持っているので,そちらにシフトしようかなとも考えています.

話がアルゴリズムよりになりますが,今回の競技は巡回セールスマン問題(TSP)を改変したようなものでした.TSPは組み合わせ最適化問題の代表的なものなので,最近ちょこちょこと調査しています.機会があれば,ちょこちょことTSPに関するアルゴリズムを紹介できればと考えています.

2008年11月11日火曜日

画像処理 第5回 線形フィルタ

こんばんは。とてつもない間がありましたが、気にしない方向で。
…今回は線形フィルタについてです。

画像処理の中で、領域に基づく濃淡変換を空間フィルタリングと呼んでいます。で、そこで用いられるフィルタを空間フィルタと呼んでいます。そして更に、空間フィルタは線形フィルタと、非線形フィルタに分けられます。今回紹介する線形フィルタは次式で表されます。



f(x, y)は入力、g(x, y)は出力、h(m, n)はフィルタの係数。
フィルタの大きさは(2w+1)*(2w+1)です。w=1、つまり3*3のフィルタは次のようになっているわけです。

Tab.1 線形フィルタ
h(-1, -1)h(0, -1)h(1, -1)
h(-1, 0)h(0, 0)h(1, 0)
h(-1, 1)h(0, 1)h(1, 1)

というわけで、いくつかのフィルタを紹介します。

・平均化フィルタ(averaging filter)
非常にシンプルなフィルタです。やることは平滑化、つまり、画像をぼかします。
フィルタは次の表です。

Tab.2 平均化フィルタ(3*3)
1/91/91/9
1/91/91/9
1/91/91/9

Tab.3 平均化フィルタ(5*5)
1/251/251/251/251/25
1/251/251/251/251/25
1/251/251/251/251/25
1/251/251/251/251/25
1/251/251/251/251/25


・加重平均化フィルタ(weighted averaging filter)
平均化フィルタではありますが、重みが付いています。
中央ほど重みが強いので、先の平均化フィルタに比べエッジが残りやすいという特徴があります。

Tab.4 加重平均化フィルタ(3*3)
1/162/161/16
2/164/162/16
1/162/161/16

Tab.5 加重平均化フィルタ(5*5)
1/2564/2566/2564/2561/256
4/25616/25624/25616/2564/256
6/25624/25636/25624/2566/256
4/25616/25624/25616/2564/256
1/2564/2566/2564/2561/256


・ガウシアンフィルタ(Gaussian filter)
ガウス分布に従った加重平均化フィルタ。
ガウス分布は以下の式です。



・微分フィルタ
離散値だけど微分。
⊿f(x)=f(x)-f(x-1)
みたいなノリです。いくつかパターンがあるので示しておきます。また、方向も横、縦とあります。
簡単にいえば、このフィルタではエッジ検出が出来ます。しかし、ノイズに敏感だったりします。

Tab.6 微分フィルタ(横方向1)
000
0-11
000

Tab.7 微分フィルタ(横方向2)
000
-110
000

Tab.8 微分フィルタ(横方向3)
000
-1/201/2
000

Tab.9 微分フィルタ(縦方向1)
010
0-10
000

Tab.10 微分フィルタ(縦方向2)
000
010
0-10

Tab.11 微分フィルタ(縦方向3)
01/20
000
0-1/20


・プリューイットフィルタ(Prewitt filter)
プリューイットフィルタは横(縦)方向に微分した後、縦(横)方向に平滑化します。つまり、先の微分フィルタに比べ、ノイズが低減されるということです。

Tab.12 プリューイットフィルタ(横方向)
-101
-101
-101

Tab.13 プリューイットフィルタ(縦方向)
111
000
-1-1-1


・ソーベルフィルタ(Sobel filter)
このフィルタは、大体プリューイットフィルタと同じですが、平滑化の際、中央に重みを付けています。

Tab.14 ソーベルフィルタ(横方向)
-101
-202
-101

Tab.15 ソーベルフィルタ(縦方向)
121
000
-1-2-1


・2次微分フィルタ
その名の通り、離散値だけど2次微分します。微分フィルタ1の出力から、微分フィルタ2の出力を引くと、丁度2次微分になります。

Tab.16 2次微分フィルタ(横方向)
000
1-21
000

Tab.17 2次微分フィルタ(縦方向)
010
0-20
010


・ラプラシアンフィルタ(Laplacian filter)
このフィルタは、縦横方向の2次微分の結果を足し合わせたものです。方向に依存しないエッジが得られます。

Tab.18 ラプラシアンフィルタ
010
1-41
010


・鮮鋭化フィルタ(sharpening filter)
このフィルタは入力画像からラプラシアンフィルタの出力を引いたものです。このフィルタを掛けると、エッジが強調されます。(鮮鋭化フィルタ2は、入力画像からラプラシアンフィルタを変形したものを引いています。)

Tab.19 鮮鋭化フィルタ1
0-10
-15-1
0-10

Tab.20 鮮鋭化フィルタ2
-1-1-1
-19-1
-1-1-1


では、これらのフィルタをサンプル画像に施してみます…と思ったのですが、投稿が長くなってしまったので、実際の例は次回へと回そうと思います。