python

OpenCVでの画像処理入門:その1

画像の定義とは?

画像は一言で言ってしまうとパターンを表す数字で画素数の集まりです。
スマホで撮った写真も画素と呼ばれる最小単位から構成されており、画素は画素値と呼ばれる特定の値を持っています。

画素値はRGB(red, green, blueの略)と呼ばれる色を表す値を持っています。
ex: (R, G, B) => (0, 0, 255) => 青色
それぞれの値は0~255の範囲で表されます。

ただし、OpenCVでは、RGBをBGRという異なる順番で持っており、注意が必要です。

画像処理とは?

画像処理は幅広い分野に及ぶので、これと言った定義はありません。
ただ、端的に言ってしまえば、「画像を解析しやすくするための処理」「情報を抽出するための処理」などと言えます。

例えば、カラー画像をモノクロ画像(グレースケール化)に変換するや、
平滑化と呼ばれる周りの画素(ピクセル)の情報を用いて自身の画素を更新する処理です。
平滑化が何に役立つかというと画像にノイズが入ってしまっている場合に修正する効果があります。(ここではレタッチと似たようなものと認識しておいてください)
※平滑化はガウシアンカーネルを用いるのですが、別の所で説明します。

他にもcannyと呼ばれるエッジを検出するのも良く用いることが多いです。

ここまでの内容をまとめると画像処理には大きく3つのステップがあります。
1、画像をぼかす(ガウシアンカーネル)
2、画像を微分(エッジ or ピクセルの変化点を検出)
3、エッジを残す処理

このような方法を使用して、画像のノイズを落としたり、欲しい情報を取り出すことができます。

OpenCVとは?

OpenCVとはOSSの画像処理ライブラリ

特徴としては、多言語対応しておりPythonだけでなく、C++やJavaにも対応しています。
機能も豊富に揃えており、GUI操作(トラックバー、マウスイベント)、画像変換、特徴抽出、動画解析、機械学習などといた幅広い機能を取り揃えています。

次回では、OpenCVを試していきます。