OpenCVの映像処理

OpenCVでは画像を独自の多次元配列構造体に格納する(iplimage形式)
カメラ映像もしくはビデオファイルから取得した映像もフレーム単位の画像として処理される

映像も連続した画像というイメージか。紙芝居とビデオ映像は別物だと思っていたけど、原理は基本的には同じか。

OpenCVの機能と構成

OpenCV : https://opencv.org/
Github: opencv/opencv

### OpenCVの画像処理アルゴリズム
– GUI(Graphical User Interface)と入出力(画像、ビデオファイル、カメラ映像など)
– 画像の基本構造(構造体)と操作(配列操作、統計、数学関数など)
– 画像処理(エッジ抽出、空間フィルタリング、ヒストグラムなど)
– 構造解析(輪郭抽出、特徴点抽出、矩形領域抽出など)
– 動き解析と物体追跡(オプティカルフロー、モーションテンプレートなど)
– パターン認識(訓練データに基づく物体検出)
– カメラ校正と3次元再構築(カメラキャリブレーション、姿勢推定、エピポーラ幾何など)

### 画像処理関数には様々なものがある
– 空間フィルタリング ぼかし、Prewitt, Sobel, Laplacian, 2D、中央値フィルタ、最大値・最小値フィルタ
– カラーモデル変換 カラー、グレースケール、白黒2値、アルファチャンネル、HLS, HSV、CIELab(XYZ), CIELUV, YUVm YCrCb, カラーツイスト、ビット深度、DIB
– 変換 DCT、DFT
– ジオメトリ計算 ズーム、間引き、回転、ミラーリング、シアー、アフィン変換、投影変換、理マッピング、サブピクセル
– モーフィング モルフォロジー変換、トップハット変換、ブラックハット変換
– ポイント処理 T閾値、コントラスト強調、ヒストグラムのイコライズ計算
– 画像統計 モーメント、ノルム、MSE
– 算術演算、論理演算 加乗、減算、シフト、二乗、スケーリング、論理積、論理和、排他的論理和、Alpha合成、IsGreater、IsEqual、IsLess、ベクトル集合の主成分分析、透視投影変換、線形代数
– 図形・テキスト描画 線分、矩形、円、楕円、ポリゴン、テキスト

対象範囲が広く感じるな。
ある程度作りたいものを明確にして、それから逆算して必要な分野から勉強していくって方が良さそうだな。ジェスチャ認識、物体追跡などカメラなどのハードウェアが必要なものもはハードルが上がるから、最初は顔認識、画像認識から始めた方が良さそうか。