10章フィルタとコンボリューション

10.1 概要

ここまでの説明で、基本的な内容についてはすべて自由に使えるようになっているはずです。OpenCVライブラリがどのような構造かわかりましたし、画像を表現するのに使う基本的なデータ構造についても理解してきました。HighGUIインタフェースについても学び、実際にプログラムを走らせ、画面に結果を表示することができるようになりました。これで画像データの操作に必要となる基本的な手法は理解できたので、より高度な操作を学んでいく準備ができました。

ここからは、画像を、色(もしくはグレースケール)の値からなる単なる配列としてではなく、画像単位で扱う、より高度な手法に進みます。本章で「画像処理」という言葉を用いるのは、画像の構造に対して定義される高度な演算を使い、グラフィカルで視覚的な画像という文脈において自然な意味を持つタスクを達成する場合です。

10.2 始める前に

本章で必要となる、重要な概念がいくつかあります。本章の大部分を占める特定の画像処理関数に深く入り込む前に、少し時間をかけてそれらを説明しておくことにしましょう。最初に、フィルタ(カーネルとも呼ばれます)とそれがOpenCVでどのように扱われるかを理解しなければなりません。また、OpenCVはフィルタや他の関数を用いてあるピクセルを処理するときは周囲のピクセルも使いますが、その際その領域が画像の端からはみ出るような場合に境界領域をどのように扱うかについても見ていきます。

10.2.1 フィルタ、カーネル、コンボリューション

本書で説明する関数のほとんどは、画像フィルタリングと呼ばれる一般的な考え方の特殊なケースです。フィルタは、ある画像I(x, y)を元に、新しい画像I'(x,

Get 詳解 OpenCV 3 ―コンピュータビジョンライブラリを使った画像処理・認識 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.