ケイエルブイは、ハイパースペクトルカメラ・光学部品・光源など世界中の光学機器を取り扱う専門商社です。

03-3258-1238

お問い合わせ
KLV大学 マシンビジョンコース

【Python×OpenCV】
カメラの設定を確認・変更する方法(解像度、明るさなど)

OpenCVには、解像度、明るさ、コントラスト、色相、ホワイトバランスなどを始めとした、カメラの設定を確認、変更するコマンドが用意されています。
本記事では、それらのコマンドの使い方を解説します。

画像処理ライブラリ「OpenCV」のインストールがまだという方は、こちらもご確認ください。
初めてのOpen CV(画像処理ライブラリ)ガイド

OpenCVでカメラの設定を確認するコマンド get()

カメラの設定を確認するためのコマンドはget()です。

例えば、取得画像の解像度(横)の値を確認したい場合、画像の幅を設定するパラメータが、CAP_PROP_FRAME_WIDTH なので、以下のようなコマンドで設定の値を取得することができます。

cap.get(cv2.CAP_PROP_FRAME_WIDTH)

コマンドの"cap”の部分は、VideoCaptureコマンドで指定したカメラのオブジェクト名です。(カメラのオブジェクト名とは
また、”cv2”の部分は、importコマンドで読み込んでいるライブラリ名で、PythonのAPIの場合はOpenCVのバージョンに関わらず、”cv2”となります。
そして、"CAP_PROP_FRAME_WIDTH"の部分に、OpenCVのカメラ設定パラメーター一覧に記載したパラメータを挿入すると各項目の設定値がわかります。

また、取得した設定値を、Pythonのプログラムを起動しているWindow(コマンドプロンプトなど)に表示するのであれば、cap.get()の前にprint記述を追加する必要があり、以下のようになります。

print(cap.get(cv2.CAP_PROP_FRAME_WIDTH))

※サンプルコードで、複数のパラメータを行列とfor文を使用して効率よく確認する方法をご紹介します。こちら

OpenCVでカメラの設定を変更するコマンド set()

カメラの設定を変更するためのコマンドがset()です。

基本的には、”get()”と同じで、設定したいパラメータ名を記載するのですが、その後に設定値も合わせて記述する必要があります。
例えば、画像の幅のパラメータは、"CAP_PROP_FRAME_WIDTH"なので、画像の幅を"1280"に設定したい場合には、以下のようになります。

cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1280)

カメラがサポートしてない値の場合には設定されないので、設定後には、前述したカメラの設定を確認するコマンドで設定が正しく行われたかを確認することが望ましいです。

OpenCVによるカメラ設定パラメータ一覧

解像度や明るさなどのパラメータの一覧を紹介します。解像度やカメラの設定を行う際の参考にしてください。
また、詳細に関してはOpenCVの公式ページもご確認ください。

カテゴリ パラメータ 内容
解像度 CAP_PROP_FRAME_WIDTH 取得画像の解像度(幅)
CAP_PROP_FRAME_HEIGHT 取得画像の解像度(高さ)
FPS CAP_PROP_FPS フレームレート
”設定値"[fps]に固定されますが、露光時間も考慮しておく必要があります。
フォーマット
モード
CAP_PROP_FOURCC 圧縮フォーマット
(BGR3、YUYV、MJPG、H264などが設定可能です。)
CAP_PROP_FORMAT VideoCapture :: retrieve()によって返されるMatオブジェクトのフォーマット
CAP_PROP_MODE キャプチャモード
CAP_PROP_CONVERT_RGB 画像をRGBに変換する必要があるかどうかを示すフラグ。
カメラの設定 CAP_PROP_BRIGHTNESS 明るさ
CAP_PROP_CONTRAST コントラスト
CAP_PROP_SATURATION 彩度
CAP_PROP_HUE 色相
CAP_PROP_GAIN ゲイン
CAP_PROP_EXPOSURE 露出
”設定値”/10000[秒]が露光時間になります。
※有効にするには露出の自動制御をOFFにする必要があります。
CAP_PROP_WB_TEMPERATURE ホワイトバランス
※有効にするにはホワイトバランスの自動制御をOFFにする必要があります。
CAP_PROP_GAMMA ガンマ
CAP_PROP_FOCUS フォーカス
CAP_PROP_PAN パン(水平移動)
CAP_PROP_TILT チルト
CAP_PROP_ROLL ロール
CAP_PROP_IRIS 絞り
カメラの
自動制御
CAP_PROP_AUTO_EXPOSURE カメラによる露出制御のON/OFF
CAP_PROP_AUTOFOCUS カメラによるフォーカス制御のON/OFF
CAP_PROP_AUTO_WB カメラによるホワイトバランス制御のON/OFF
(参考)1や0.75を設定するとON、0や0.25を設定するとOFFになりました。
カメラの情報 CAP_PROP_TEMPERATURE デバイスの温度を取得(確認中)
カメラの
制御
CAP_PROP_TRIGGER トリガーモードのON/OFF設定
CAP_PROP_TRIGGER_DELAY トリガーのディレイ値
CAP_PROP_SETTINGS カメラの設定値変更用Windowのポップアップの有無

サンプルコード

最後に、OpenCVのカメラの設定値を取得するPythonのサンプルコードをご紹介します。

import cv2

cap = cv2.VideoCapture(0)

camera_parameter = ['CAP_PROP_FRAME_WIDTH',
 'CAP_PROP_FRAME_HEIGHT',
 'CAP_PROP_FOURCC',
 'CAP_PROP_BRIGHTNESS',
 'CAP_PROP_CONTRAST',
 'CAP_PROP_SATURATION',
 'CAP_PROP_HUE',
 'CAP_PROP_GAIN',
 'CAP_PROP_EXPOSURE',]

for x in range(9):
     print(camera_parameter[x], '=', cap.get(x))

上記のcamera_parameter内に確認したいパラメータを増やすと確認が可能になります。

サンプルコード実行結果

CAP_PROP_FRAME_WIDTH = 1280.0
CAP_PROP_FRAME_HEIGHT = 1024.0
CAP_PROP_FOURCC = -1.0
CAP_PROP_BRIGHTNESS = 640.0
CAP_PROP_CONTRAST = 480.0
CAP_PROP_SATURATION = 30.0
CAP_PROP_HUE = 20.0
CAP_PROP_GAIN = 1.0
CAP_PROP_EXPOSURE = 1.0

サンプルコードの実行には、PythonとOpenCVのインストールが必要です。

関連記事

 →Pythonのインストール方法
 →Open CV(画像処理ライブラリ)のインストール方法

用語集

マシンビジョンコース

ご質問・ご相談お気軽にお問い合せください

お電話でのお問合せ 03-3258-1238 受付時間 平日9:00-18:00(土日祝日除く)
Webでのお問い合わせ