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

スポンサーリンク

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

スポンサーリンク

画像処理とは

画像処理(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#で画像処理入門

【お借りした画像】
プロ生ちゃん(暮井 慧)

【関連記事】
画像処理のアルゴリズムまとめ

スポンサーリンク

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