【画像処理入門】アルゴリズム&プログラミング

この記事では、画像処理における基本的なアルゴリズムとその実装例(プログラム)についてまとめました。

画像処理とは

画像処理(Image processing)とは、コンピュータを用いて次の①②を行うことです。

①画像から画像への変換 (画像の明るさ変換等)
②画像から様々な情報を取り出す (監視カメラの映像から人の動きを検出する等)

ただし、「①は画像処理」「②はコンピュータビジョン」と区別する場合もあります。
①の技術は、デジタルカメラ、画像編集ソフト(Photoshopなど)、医療機器(MRI, CT画像の高画質化)などに応用されています。
②の技術は、監視カメラやゲーム(VRやARなど)などに応用されています。

画像処理の特徴

ソフトウェア的で問題を解決できる画像処理技術は、低コスト化しやすい特徴があります。
例えば、これまではカメラとセンサーで取得していた情報を、カメラ映像のみで取得できるようになるとセンサーが不要になり、その分のコストを削減できます。
コスト削減に貢献しやすくコンピュータ技術の発達と共に研究が活発です。

画像処理アルゴリズム

基本的な画像処理アルゴリズムについて以下にまとめました。

基本構造

項目
データ構造 デジタル画像の基本構造, 標本化, 量子化
色空間 RGB, GRAY, HSV
色空間の変換 RGB→GRAY, RGB→HSV
減色 K平均法

ヒストグラム・濃度変換

項目
基礎 ヒストグラムとは
濃度変換 線形濃度変換, 非線形濃度変換(ガンマ補正), ヒストグラム平均化

空間フィルタリング

項目
基礎 畳み込み演算とは
平滑化 平均値, ガウシアン, メディアン
輪郭抽出 一次微分, Prewitt, Sobel, Laplacian, エンボス, LoG, Canny
高速処理 積分画像, DoG, DoM, XDoG

二値画像

項目
基礎知識 二値画像とは
二値化処理 単純二値化, 適応型二値化, 大津の二値化
膨張収縮 膨張収縮処理
直線検出 ハフ変換(古典的), ハフ変換(確率的)

幾何学的変換

項目
補間 最近傍補間法, バイリニア補間法, バイキュービック補間法
回転 アフィン変換

パターン認識

項目
テンプレート探索 SSD・SAD・NCC・ZNCC, FFT+積分画像で高速化
特徴量 Haar-like, HoG, SIFT, SURF, 位相限定相関法
識別器 AdaBoost, カスケード型, SVM, ニューラルネット
利用例 顔検出(Haar Cascade), 人検出(HoG Cascade)

動画像処理

項目
動体検出 背景差分法, フレーム差分法
動体追跡 MeanShift, Camshift, オプティカルフロー, パーティクルフィルタ

画像計測

項目
ノイズ ショットノイズ, 熱ノイズ
距離計測 単眼カメラ, ステレオカメラ, エピポーラ幾何学, キャリブレーション, ステレオマッチング
三次元計測 位相シフト法

ファイル構造

項目
ファイル構造 ヘッダ部とデータ部
BMP BMP形式, BMPをバイナリエディタで解析
JPG
PNG
GIF

応用例

項目
画像加工 写真の漫画化, 写真のアニメ絵化

画像処理プログラミング

基本的な画像処理プログラミングについて以下にまとめました。

Python

項目
標準ライブラリ BMPのヘッダ解析, BMPの明るさ半分
外部ライブラリ OpenCV入門, Scikit-image入門
まとめ 【Python】画像処理プログラミング入門

C#

項目
まとめ C#で画像処理入門

画像処理ソフト

主な画像処理ソフトの使い方についてまとめました。
画像処理かどういったものか体験したり手軽に利用するのに便利です。

項目
画像編集ソフト GIMP入門
お借りした画像 プロ生ちゃん(暮井 慧)

シェア&フォローお願いします!