画像処理におけるフィルタに出てくる行列の意味

OpenCVに限らず、画像処理を勉強していると、Sobelフィルタ、Laplacianフィルタという言葉が出てきます。
一次微分フィルタ、二次微分フィルタの別名のような感じで記述されていることが多いですが、今後、いろいろなフィルタ処理を勉強するにあたって、その幾何学的な意味を確認しておいたほうがいいなと感じたので、まとめておきます。

そもそも、フィルタ処理は、ComputerVisionの世界では、画像の中の特徴的な部分を抽出する手段の一つとして利用されます。
中でも、Sobel、Laplacian両フィルタは、画像の中の1画素に注目した場合、その画素が、その周りの画素と比較してどれほど異なっているのかの差分を捕らえることで特徴を抽出しようという差分フィルタの一種です。

つまり、下図のように f(i,j) → g(i,j) に変換する際、(i,j)(オレンジの部分)と、周りの画素(黄色の部分)との差分を新しくg(i,j)と定義することになります。

図1

 

 

 

 

 

 

 

f(i,j) → g(i,j)の際に、画素のどの部分をその程度重み付けで考えるかで、変換後の値が変わってきます。それがフィルタです。
この【例】ではオレンジ色の画素ひとつについて着目しましたが、画像全体の画素についてこのフィルタを適用すると、以下のようになります。

画素値の変化がX軸方向で起こっているところで、g(i,j)の値が急激に変化し、X軸方向の変化が無いところでは、0になっていることが分かります。
この例では、水平方向の変化を重視するフィルタを利用しましたが、同じ原理で、垂直方向を重視するフィルタや斜めを重視するフィルタなどを適用することも可能です。

コラム

OpenCVの勉強に購入した本です。どちらも良著だと思います。これから学ばれる人は是非参考にしてください!

OpenCV プログラミングブック 第2版 OpenCV 1.1対応 OpenCV プログラミングブック 第2版 OpenCV 1.1対応

「OpenCV プログラミングブック」は2版あるので気を付けてください。こちらが新しい方です。この本は実例が豊富ですので、OpenCVについて理解がしやすいです。一通り例題をこなすと、OpenCVについての知識が深まります。

 

 

 

詳解 OpenCV ―コンピュータビジョンライブラリを使った画像処理・認識 詳解 OpenCV ―コンピュータビジョンライブラリを使った画像処理・認識

分厚いですが、オライリー本の例にもれず、良著だと思います。上の本でOpenCVの面白さを知った人には、手放せない本になるはずです。

コメントを残す

サブコンテンツ

このページの先頭へ