見出し画像

OpenCV 入門 (1) - 事始め

「OpenCV」でできることをまとめました。

・Python 3.7
・OpenCV 4.5

1. OpenCV

 「OpenCV」は、オープンソースなコンピュータ・ビジョン・ライブラリです。コンピュータで画像や動画の処理に必要な、様々な機能が提供されています。マルチプラットフォーム対応のため、PC、スマートフォン、RasPiなど多くのデバイスで利用可能です。

主な機能は、次のとおりです。

・図形の描画 (円、四角形、線、文字など)
・アフィン変換 (フリップ、リサイズ、回転など)
・色変換 (グレイスケール、閾値処理など)
・フィルタ処理 (ブラー処理、ガウシアン処理など)
・画像合成 (加算、差分、論理和など)
・機械学習・深層学習
・カメラキャリブレーション
・GUI

2. APIリファレンスとチュートリアル

OpenCVのAPIリファレンスは、以下で参照できます。

OpenCVのチュートリアルは、以下で参照できます。

3. モジュール一覧

「OpenCV4」は、タスク毎に複数のモジュールに分割されています。

◎ メインモジュール

・core : 他のモジュールで使用される汎用的なデータ構造や関数を提供。
・ imgproc : フィルタリング、幾何学変換、色空間変換、ヒストグラムなどの画像処理を提供。
・imgcodecs : 画像ファイルの読み書きの機能を提供。
・videoio : ビデオキャプチャとビデオコーデックの機能を提供。
・highgui : UIとキー・マウス入力の機能を提供。
・video : バックグラウンド減算、動き推定、物体追跡などのビデオ分析の機能を提供。
・calib3d : カメラのキャリブレーションと3Dリコンストラクションの機能を提供。
・features2d : 特徴抽出の機能を提供。
・objdetect : 物体検出の機能を提供。
・dnn : DNN(Deep Nural Network)の機能を提供。
・ml : 分類、回帰、クラスタリングなどの機械学習の機能を提供。
・flann : 多次元空間でのクラスタリングと探索などのFLANN(Fast Library for Approximate Nearest Neighbors)の機能を提供。
・photo : コンピュテーショナルフォトグラフィの機能を提供。
・stitching : パノラマ画像のスティッチングの機能を提供。

◎ 追加モジュール

・aruco : ARマーカー生成・検出の機能を提供。
・bgsegm : 背景・前景セグメンテーションの機能を提供。
・bioinspired : 生物学的なビジョンモデルと派生ツールを提供。
・ccalib : カメラのキャリブレーション(魚眼カメラ、マルチカメラ)の機能を提供。
・cnn_3dobj : 3Dオブジェクトの分類および姿勢推定の機能を提供。
・cvv : デバッグ用可視化ツールを提供。
・datasets : 学習データセットの読み込みの機能を提供。
・dpm : Deformable Part Modelによる物体検出の機能を提供。
・face : 顔認識の機能を提供。
・freetype : freetype/harfbuzzによる文字描画の機能を提供。
・fuzzy : ファジィ理論を用いた画像処理の機能を提供。
・hdf : HDFファイルの読み込みの機能を提供。
・img_hash : Image Hashingの機能を提供。
・line_descriptor : 線分抽出のためのBinary Descriptorの機能を提供。
・optflow : Optical Folowの機能を提供。
・plot : Matデータのプロットの機能を提供。
・phase_unwrapping : 2次元の位相マップのアンラッピングの機能を提供。
・reg : 画像の自動位置合わせの機能を提供。
・rgbd : RGB-D処理の機能を提供。
・saliency : 顕著性マップ推定の機能を提供。
・sfm : Structure From Motionの機能を提供。
・shape : シェイプの距離とマッチングの機能を提供。
・stereo : ステレオマッチングの機能を提供。
・structured_light : デプス推定のためのグレイコードパターン生成の機能を提供。
・superres : 超解像の機能を提供。
・surface_matching : Surface Matchingの機能を提供。
・text : テキスト領域の検出および認識の機能を提供。
・tracking : 物体追跡の機能を提供。
・videostab : ビデオ安定化の機能を提供。
・viz : シーンやウィジェットと対話するための3Dビジュアライザーを提供。
・xfeatures2d : features2dモジュールのアルゴリズム拡張を提供。
・ximgproc : imgprocモジュールのアルゴリズム拡張を提供。
・xobjdetect : objdetectモジュールのアルゴリズム拡張を提供。
・xphoto : photoモジュールのアルゴリズム拡張を提供。

4. インストール

Pythonの仮想環境でOpenCVパッケージをインストール。

$ pip install opencv-python

5. OpenCVの動作確認

OpenCVの動作確認として、グレースケール変換を行います。

(1) 「sample.jpg」の準備。

画像1

(2)「hello.py」を作成し、以下のように編集。

import cv2

# イメージの読み込み
img = cv2.imread('sample.jpg')

# グレースケール変換
img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# イメージの表示
cv2.imshow('image', img_gray)
cv2.waitKey(0)
cv2.destroyAllWindows()

(4) 実行。

$ python hello.py

成功すると、次のようにグレースケールで表示されます。

画像2

次回


この記事が気に入ったらサポートをしてみませんか?