Python版OpenCV入門 サンプル集

この記事では、Python+OpenCVで画像処理プログラミングを行う方法を入門者向けにソースコード付きで解説します。

Pythonとは

Pythonは欧米で人気なスクリプト言語です。
初心者にも扱いやすい言語で短くて読みやすいコードを書くことが出来ます。
数値計算や最近流行りの機械学習、画像処理にも強いという特徴があります。
今回は、PythonとOpenCVを用いた画像処理プログラミングについてまとめました。

関連記事
画像処理の原理はこちら 【画像処理入門】アルゴリズム&プログラミング
Pythonの基礎はこちら Python入門 サンプル集

Python・OpenCVの環境構築

PythonとOpenCVの環境構築について以下にまとめています。

項目
Pythonの導入 Python2.7編, Python3.5編, WinPython編, Anaconda編, Python(x, y)編,
OpenCVの導入 【Windows編】Python3にOpenCV3をインストール

【補足】
Python版OpenCVを使えるようにするには、「Python環境の構築」「OpenCVの導入」の2つを行う必要があります。
パターンはいくつかありますが、管理人のおすすめは次の①②です。
①Python環境の構築・・・WinPython3で行う
②OpenCVの導入・・・whlファイルで行う

ファイル入出力

項目
画像ファイル ファイル読込, ファイル書込, 幅・高さ・ch数・画素数の取得 , 窓画像(部分画像)
動画ファイル 読み込みと再生

色空間の変換

項目
変換 RGB→GRAY, RGB→HSV

ヒストグラム・濃度変換

項目
基礎 ヒストグラム作成
変換 線形濃度変換, 非線形濃度変換(ガンマ補正), ヒストグラム平均化
減色 K平均法

空間フィルタリング

項目
平滑化 平均値, ガウシアン, メディアン
輪郭検出 一次微分, Prewitt, Sobel, Laplacian, Emboss, LoG, Canny
処理の高速化 積分画像, DoG, DoM, XDoG
参考 【Numba】NumPy+for文の高速化

周波数空間

項目
フーリエ変換 一次元, 二次元, スペクトル強度
フィルタリング ローパスフィルタ, ハイパスフィルタ

二値画像

項目
二値化処理 単純二値化, 適応的二値化, 大津の二値化
膨張収縮 膨張収縮処理
直線検出 ハフ変換(古典的), ハフ変換(確率的)
ブロブ解析 ラべリング, ブロブ情報解析, 重心, 面積, ペリメータ, アスペクト比、ソリディティ, 等価直径, モーメント特徴, 外接矩形, 外接円

幾何学的変換

画像の拡大・縮小・移動・回転など。

項目
補間法 最近傍補間法, バイリニア補間法, バイキュービック補間法
回転 アフィン変換
その他 ユークリッド変換, 相似変換

パターン認識

項目
テンプレート探索 SSD, SAD, NCC, ZNCC
顔検出 Haar Cascade
人検出 HoG SVM
特徴点抽出 SIFT, SURF, 位相限定相関法

動画像処理

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

応用例・その他

項目
画像加工 写真の漫画風加工
関連記事 【Python】画像処理プログラミング入門, 【画像処理入門】アルゴリズム&プログラミング

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