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

03-3258-1238

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

【Python×OpenCV】
簡単にカメラの設定変更用ウィンドウを出す方法

たった1行のコマンドで、明るさ、コントラスト、色相、ホワイトバランスなどの設定を変更できるカメラの設定用ウィンドウを出す”CAP_PROP_SETTINGS”コマンドが非常に便利なのご紹介します。

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

通常のカメラの設定変更方法

カメラの設定をOpenCVで変更する場合には、VideoCaptureの後に、set()コマンドを使用します。
例えば、コントラストを変更したい場合、コントラスト変更のパラメータは、CAP_PROP_CONTRASTなので、以下のようなコマンドで設定が可能です。

cap.set(cv2.CAP_PROP_CONTRAST, [設定値])

この設定方法は、プログラム起動時などにコントラストの値を固定する場合には便利ですが、カメラアプリなどでよく実現されている、カメラの設定をリアルタイムにスライドバー等で変更できるようにするという観点では、”スライドバーを表示するGUI部分”と”ユーザーが行った設定値を読み込んで設定を変更する部分”のプログラムコードを書く必要があるため大変です。

関連記事

便利なカメラの設定変更用ウィンドウ

そこで便利なのが、CAP_PROP_SETTINGSというコマンドです。
このパラメータを1に設定すると、OpenCVのライブラリ内に用意されているパラメター変更用のウィンドウが開き、こちらで設定が変更できるようになります。

cap.set(cv2.CAP_PROP_SETTINGS, 1)
camera-setting-window.png

パラメター変更用のウィンドウで設定できるパラメータは、接続するカメラの性能にもよりますが、「明るさ、コントラスト、色合い、鮮やかさ、鮮明度、ガンマ、ホワイトバランス、逆光補正、ゲイン」と幅広く対応しています。

関連記事
  • l4v2でカメラが対応している変更パラメータを確認する方法(リンク準備中)

注意点は、DirectShow(DSHOW)経由での画像の取得にしか対応していないため、VideoCaptureの際に、CAP_DSHOWのOptionを付加しておく必要がある点です。

たった1行追加するだけの簡単なコマンドですので、ぜひお試しください。

サンプルコード

以下に、カメラからの画像入力及びディスプレイへの画像出力を含めたPythonのサンプルコードをご紹介します。

import cv2

cap = cv2.VideoCapture(1, cv2.CAP_DSHOW)
​
cap.set(cv2.CAP_PROP_SETTINGS, 1)

while True:
   ret, img = cap.read()
   cv2.imshow('video image', img)
   key = cv2.waitKey(10)
   if key == 27:
       break

cap.release()
cv2.destroyAllWindows()

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

関連記事

用語集

マシンビジョンコース

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

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