メインコンテンツまでスキップ
バージョン: Next

Gstreamerが有効なopencv-python

GStreamer API を使用すると、センサー画像の取得、処理、表示のためのパイプラインを構築することができますが、GStreamer プラグインである appsinkcv2.VideoCapture(OpenCV-Python API)と組み合わせることで、GStreamer API を直接使用せずに同様のタスクを実行することができます。詳細はチュートリアルをご参照ください。

appsink プラグインは、Windows では -InstallGstPlugins オプション、Linux では --install-gst-plugins オプションを指定して Sensing-Dev SDK インストーラーを使用することで入手可能です。

cv2.VideoCapture 関数は、GStreamer サポート付きの OpenCV-Python をインストールすることで利用可能になりますが、通常の OpenCV-Python インストールとは異なり、追加の手順が必要です。

本書では、Windows および Linux の両方で GStreamer 機能を有効にした OpenCV-Python を構築およびインストールする方法について説明します。

opencv-pythonでGstreamerが有効かを調べる方法

Python で以下のコードスニペットを試してください。

import cv2
print(cv2.getBuildInformation())

ビルド情報で GStreamer が YES と表示されている場合、使用している opencv-python モジュールは GStreamer を使用してビルドされており、cv2.VideoCapture API を利用することができます。

General configuration for OpenCV 4.10.0 =====================================
...

Video I/O:
...
GStreamer: YES (1.22.5)

動作しない理由

Python コードが「cv2が見つからない」というエラーを返す場合、次の原因が考えられます:

  1. opencv-python がインストールされていない。次のセクションの手順に従い、opencv-python をビルドおよびインストールしてください。
  2. GStreamer 対応の opencv-python がインストールされているが、GStreamer ライブラリのパスが設定されていない。 Sensing-Dev SDK がインストールされていることを確認し、以下のように cv2 モジュールをロードする前にパスを追加してください:
import os
os.add_dll_directory(os.path.join(os.environ["SENSING_DEV_ROOT"], "bin"))

import cv2
print(cv2.getBuildInformation())

Windows ユーザの方

Pre-req to build (not runtime):

ビルド・インストール

以下のコマンドを実行して、GStreamer 対応の opencv-python をインストールしてください。

Invoke-WebRequest -Uri https://github.com/Sensing-Dev/sensing-dev-installer/releases/download/v25.01.02/opencv_python_installer.ps1  -OutFile opencv_python_installer.ps1 -Verbose; powershell.exe -ExecutionPolicy Bypass -File .\opencv_python_installer.ps1

既に pip でインストールした opencv-python モジュールがある場合、Gstreamerが有効になったもので上書きされます。

Linux ユーザの方

依存ライブラリの入手

依存ライブラリをインストールします。

sudo apt-get update
sudo apt-get install libunwind-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-bad1.0-dev \
gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav \
gstreamer1.0-tools gstreamer1.0-x gstreamer1.0-alsa gstreamer1.0-gl gstreamer1.0-gtk3 \
gstreamer1.0-qt5 gstreamer1.0-pulseaudio -y

ビルド・インストール

以下のコマンドを実行して、GStreamer 対応の opencv-python をインストールしてください。

pip3 install numpy
pip3 install --no-binary opencv-python opencv-python==4.10.0.84 --verbose