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

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

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

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

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

ただし、①は画像処理、②はコンピュータビジョンと区別する場合もあります。

主な特徴

また、画像処理技術の主な特徴は以下の通りです。

主な特徴
多くの情報を取得できるため、他のセンサーでは対応できなかった事が出来るようになる。
情報量が多いため、データ処理にかかるコストは高くなる。(他のセンサーと比べてハイスペックな計算機と多くの電力が必要)

画像処理アルゴリズム

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

基本構造

項目
データ構造 デジタル画像の基本構造, 標本化, 量子化
色空間 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 SVM)

動画像処理

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

画像計測

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

ファイル構造

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

応用例

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

画像処理プログラミング

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

Python

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

C#

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

画像処理ソフト

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

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

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