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

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

画像処理の概要・特徴・応用例

画像処理(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入門
その他 プロ生ちゃん(暮井 慧)(お借りした画像)
関連記事