1

JPEG 形式または YUV422 または BGR24 でフレームを取得できる V4L2 カメラを持っています。OpenCVでカメラをBGR24@640x480に設定したいです。これを行うために、次の設定を行いました。

capture = cvCreateCameraCapture(0);
cvSetCaptureProperty( capture, CV_CAP_PROP_FRAME_WIDTH, 640 );
cvSetCaptureProperty( capture, CV_CAP_PROP_FRAME_HEIGHT, 480 );
cvSetCaptureProperty( capture, CV_CAP_PROP_FOURCC, CV_FOURCC('B', 'G', 'R', '3'));  

しかし、opencv は次のエラー メッセージを返します。

HIGHGUI ERROR: V4L: Property <unknown property string>(6) not supported by device

そのため、openCV は BGR24 の代わりに JPEG@640x480 形式を設定しました。どうすれば修正できますか?

注: BGR24 形式は、次の gstreamer パイプラインでテストされ、正常に動作します。

gst-launch-0.10 v4l2src num-buffers=10 device=/dev/video0 ! 'video/x-raw-rgb,width=640,height=480,bpp=24,depth=24,red_mask=255,green_mask=65280,blue_mask=16711680,endianness=4321' ! filesink location=/tmp/output10.rgb24

敬具

4

1 に答える 1

0

正しいカメラにアクセスしていることを確認します

複数のカメラがある場合は、N を変化さcvCreateCameraCapture(N)せてそれらを循環させる必要があります。

それ以外は、Web カメラ自体が UVC 仕様に準拠していることを確認します。V4L がカムのパラメータのクエリに問題を抱えている可能性があります。

カメラが特定のフォーマットのキャプチャをサポートしているからといって、それが USB ビデオ クラスに厳密に準拠していない場合、OpenCV はそのフォーマットでキャプチャできることを検出できるとは限りません。強制することはできません。

于 2012-11-07T10:36:30.307 に答える