OpenCV サンプル Python プログラム
【概要】
OpenCV と Python を組み合わせた画像・動画処理のプログラムと説明のページ集である。動作環境は Python 3.12、OpenCV 5 とする。
対象領域
画像処理の基礎:色空間変換、ヒストグラム解析、ノイズ除去フィルタリング、2値化(OTSU の方法・適応的2値化)、モルフォロジー演算(画像の形を膨張・収縮させる処理)、輪郭抽出、Canny エッジ検出、HoG 特徴量抽出などを網羅する。
セグメンテーション:GrabCut 法を用いた対話的・自動的な前景背景分離とセグメンテーション(画像を意味のある領域に分ける処理)。
動画処理とカメラの活用:リアルタイムのカメラ映像の取得と書き出し、フレーム間差分による動体検出、オプティカルフロー(画面内の動きの向きと大きさの推定)を用いた動き推定とトラッキング。
応用:ステレオマッチングによる奥行き推定、顔検出、イメージスティッチング(複数の画像をつないでパノラマ画像を作る処理)。
特徴と意義
品質検査、監視システム、自律ロボット、AR/VR、医療画像解析などへの応用が想定される。
【目次】
【関連する外部ページ】
- OpenCV 公式ドキュメント: https://docs.opencv.org/5.0/
- OpenCV 公式の Python 向けチュートリアル: https://docs.opencv.org/5.0/py_tutorials/py_tutorials.html
【サイト内の関連情報】
- OpenCV 入門: 別ページで説明。
第1章 画像・動画処理(OpenCV)
OpenCV と Python を使用した画像処理、動画処理、および関連技術の解説リンク集である。画像表示、色空間変換、ノイズ除去、2値化、輪郭抽出などの基本的な処理から、ステレオマッチング、顔検出、イメージスティッチングなどの応用技術までを扱う。
画像処理の基礎(OpenCV,Python使用)
- OpenCV で画像の表示(OpenCV,Python を使用)
- OpenCV でカラー画像を濃淡画像に変換(OpenCV,Python を使用)
- OpenCV で RGB から LAB への色空間の変換(OpenCV,Python を使用)
- OpenCV でカラーヒストグラム(Python を使用)
- OpenCV でヒストグラム平坦化(OpenCV,Python を使用)
- OpenCV で画像のノイズ除去(OpenCV,Python を使用)
- OpenCV で濃淡画像を使う(イメージヒストグラム,ヒストグラム平坦化,ノイズ除去,2値化,輪郭抽出)(OpenCV,Python を使用)
- OpenCV でOTSU の方法による 2値化(OpenCV,Python を使用)
- OpenCV で適応的 2値化(OpenCV,Python を使用)
- OpenCV でオープニングによる 2値画像からの小領域除去(OpenCV,Python を使用)
- 2値画像の領域から面積などを求める(OpenCV,Python を使用)
- OpenCV で Canny エッジ(OpenCV,Python を使用)
- OpenCV で HoG 特徴量(OpenCV,Python を使用)
- OpenCV で点や線の描画(OpenCV,Python を使用)
- OpenCV でマウスイベント(OpenCV,Python を使用)
前景背景分離とセグメンテーション(OpenCV,Python使用)
動画処理とカメラの活用(OpenCV,Python使用)
- OpenCV でビデオカメラ画像の表示(Python を使用)
- カメラ画像を枠なし表示(Python, OpenCV を使用)
- OpenCV でビデオカメラ画像の表示,ファイル書き出し,濃淡画像処理(Python を使用)
- OpenCV でビデオのフレーム間差分,トラッキングビジョン,オプティカルフロー(Python を使用)
- 動画ファイルの表示(Python を使用)
高度な応用(OpenCV,Python使用)
- OpenCV でステレオマッチング(OpenCV,Python を使用)
- カメラのステレオマッチング(OpenCV,Python を使用)
- OpenCV で顔検出(OpenCV,Python を使用)
- OpenCV でイメージ・スティッチング(OpenCV,Python を使用)
- OpenCV でイメージ・スティッチング、別バージョン(OpenCV,Python を使用)
第2章 サンプル画像の準備と OpenCV 5 での注意点
OpenCV 5 では、モジュールの構成が一部変更された。HoG 特徴量を扱う cv2.HOGDescriptor と、Haar Cascade による検出を行う cv2.CascadeClassifier は opencv_contrib(xobjdetect モジュール)へ移動したため、これらを使うには opencv-contrib-python が必要である。顔検出では、OpenCV 5 の objdetect モジュールに含まれる DNN ベースの検出器 cv2.FaceDetectorYN(YuNet)を使う方法があり、公式の移行ガイドでは Haar Cascade より高速で精度が高いと説明されている。