1
我有一個V4L2相機,可以抓取JPEG格式的幀或YUV422或BGR24。我想通過OpenCV將相機設置爲BGR24 @ 640x480。要做到這一點,我做了如下設置:如何使用OpenCv設置BGR24格式?
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的設置JPEG @ 640×480格式,而不是BGR24。 我該如何解決它?
注: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
親切的問候
謝謝@Totero,我一定會使用/ dev/video0,因爲我沒有任何其他插入式相機。我的V4L2相機不是基於UVC,因爲我爲它製作了驅動程序(它不是USB相機,它基於微控制器相機接口)。你確定CV_CAP_PROP_FOURCC調用標準UVC設置(而不是V4L2 ioctls)嗎? – aldo85ita
對於USB設備,V4L2調用UVC(http://www.kernel.org/doc/Documentation/video4linux/uvcvideo.txt) – Totero
但是看到你的相機不是USB--這是我的一個可憐的假設......然後我會說V4L和您的自定義驅動程序之間存在明確的問題。你的openCV代碼是正確的。也許你應該把這個問題重新發布爲驅動程序問題(這裏和dsp堆棧),也許有人已經遇到了這個問題。 – Totero