FrontPage

ターミナル上でのカメラ操作

ターミナル上で

lsusb

のコマンドを実行すると、USBポートに接続されたデバイスを列挙する。

guvcview

のコマンドでカメラ起動し、映像が出力される。
カメラ出力が選択できるが、MJPEGが最も低容量なのでこれを使おう。
1フレーム毎をJPEG形式で保存するため、画素情報が圧縮の過程で失われてしまう点については注意。
画素値の正確な取得を行いたい場合はBGR3を使用すべし。

OpenCVにおけるカメラ操作

cv2.VideoCapture関数

cv2.VideoCapture(index, apiPreference)

Webカメラから動画を取得する関数。
引数は以下の通り。

index(必須)ビデオキャプチャデバイスのID。0,1,2などの整数を設定する。
apiPreference(任意)ビデオキャプチャデバイスのアクセスに使用するAPIの優先度を指定するためのオプション引数。この引数を使用することで、特定のカメラAPIを優先的に選択したり、デフォルトのAPI選択動作を調整したりすることができる。(デフォルトはcv2.CAP_ANY)

カメラが1台しか接続されていない場合、カメラのデバイスIDは0になるため、indexには0を与えれば良い。
2台以上カメラを用いる場合はindexを区別した上で別々の変数に格納する必要がある。

apiPreferenceには、以下のようなものがある。
基本的にデフォルトで問題ない。

cv2.CAP_ANY利用可能なすべてのカメラAPIを試行し、最初に利用可能なものを選択する。(デフォルト値)
cv2.CAP_V4L2Video for Linux 2 (V4L2) APIを使用してカメラデバイスにアクセスする。Linuxで使用する場合がある。
cv2.CAP_DSHOWDirectShow APIを使用してカメラデバイスにアクセスする。Windowsで使用する場合がある。
cv2.CAP_MSMFMicrosoft Media Foundation APIを使用してカメラデバイスにアクセスする。Windowsで使用する場合がある。

戻り値はcv2.VideoCaptureクラスのインスタンスである。
cv2.VideoCaptureクラスには多数のメンバ関数が存在する。
以下の項で解説する。

cv2.VideoCapture.read関数


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS