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

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

【画像処理とは】特徴・応用例

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

処理内容 応用例
画像から画像への変換 画像編集ソフト(画像の拡大・縮小・高画質化など)
画像から様々な情報の取得 デジタルカメラ(顔検出機能など)、自動運転技術(障害物の認識など)、医療機器(CT画像の分析など)

①は画像処理、②はコンピュータビジョンと区別する場合もあります。
画像処理技術(画像センサと画像処理の組合せ)の特徴は以下のとおりです。

画像処理の特徴
画像センサ(カメラ)は、他のセンサーと比較しても多くの情報を取得できるため、対応できる課題分野の幅が大きい。
画像センサが取得する情報量は多いため、データ処理の計算コストが高い(高価な計算機が必要)。

【画像処理入門】基礎的なアルゴリズム

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

画像の基本構造
データ構造 デジタル画像の基本構造標本化量子化ラスタ走査と二次元配列走査
色空間 RGBGRAYHSV
色空間の変換 RGB→GRAYRGB→HSV
減色 ■K平均法
ヒストグラム・濃度変換
基礎 ヒストグラムとは
濃度変換 線形濃度変換非線形濃度変換(ガンマ補正)ヒストグラム平均化
空間フィルタリング
基礎 畳み込み演算とは
平滑化 平均値ガウシアンメディアン
輪郭抽出 一次微分PrewittSobelLaplacianエンボスLoGCanny
高速処理 積分画像DoGDoM ■XDoG
まとめ 空間フィルタリングの種類
周波数フィルタリング
基礎 画像のフーリエ変換
ノイズ除去
画像圧縮
二値画像
基礎知識 二値画像とは
二値化処理 単純二値化適応型二値化大津の二値化
膨張収縮 膨張収縮処理マスク処理
直線検出 ■ハフ変換(古典的) ■ハフ変換(確率的)
幾何学的変換
補間 最近傍補間法バイリニア補間法バイキュービック補間法
回転 アフィン変換
パターン認識
テンプレート探索 SSD・SAD・NCC・ZNCC ■FFT+積分画像で高速化
特徴量 Haar-likeHoGSIFT ■SURF ■位相限定相関法
識別器 カスケード型SVM ■ニューラルネット
利用例 顔検出(Haar Cascade)人検出(HoG SVM)
動画像処理
動体検出 背景差分法フレーム差分法色追跡(HSV)
動体追跡 ■MeanShift ■Camshift ■オプティカルフローパーティクルフィルタ
画像計測
ノイズ ■ショットノイズ ■熱ノイズ
距離計測 ■単眼カメラ ■ステレオカメラ ■エピポーラ幾何学 ■キャリブレーション ■ステレオマッチング
三次元計測 ■位相シフト法
ファイル構造
ファイル構造 ヘッダ部とデータ部
BMP BMP形式BMPをバイナリエディタで解析
JPG
PNG
GIF
応用例
画像加工 写真の漫画化 ■写真のアニメ絵化

【画像処理応用】プログラミング、ソフトウェア、その他

画像処理プログラミング・ソフトウェアについて以下にまとめました。

画像処理プログラミングまとめ
Python Pythonで画像処理入門Python + OpenCV入門Python + Scikit image入門
C# C#で画像処理入門
画像処理ソフトまとめ、その他
画像編集ソフト GIMP入門
その他 プロ生ちゃん(暮井 慧)(お借りした画像)