1
1)我得到這個錯誤,同時處理兩個羅技C310攝像頭與OpenCV的(更新Kubuntu的Linux)的OpenCV的多相機處理問題
VIDIOC_STREAMON:沒有足夠的空間在設備上留下
所有錯誤日誌如下
**IDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument**
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
**libv4l2: error turning on stream: No space left on device**
**VIDIOC_STREAMON: No space left on device**
OpenCV Error: Bad flag (parameter or structure field) (Unrecognized or unsupported array type) in cvGetMat, file /home/rjdp/Computer_Vision/0_Installers/OpenCV-2.4.2/modules/core/src/array.cpp, line 2482
terminate called after throwing an instance of 'cv::Exception'
what(): /home/rjdp/Computer_Vision/0_Installers/OpenCV-2.4.2/modules/core/src/array.cpp:2482: error: (-206) Unrecognized or unsupported array type in function cvGetMat
2)它只在處理兩個攝像頭時發生,即使在默認的低分辨率640x480。我仍然試圖將代碼中的分辨率降低到320x240,這也沒有奏效。
3)我在其他網站上搜索了很多其他帖子&。這告訴我沒有足夠的USB凸輪帶寬可用。於是,我就在背面也未能:(
我的問題是堵塞一個凸輪在前置USB &之一:
是否可以解決帶寬/內存&運行這個問題上有兩個或 更多個相機一起上的OpenCV 2.4.2 ??的OpenCV使用FFMPEG來處理I/O,以便我可以告訴我的相機硬件與一些FFMPEG命令取輸入流與壓縮MPEG模式代替帶寬的消耗正常模式。
代碼是如下:
#include "opencv2/opencv.hpp"
#include <stdio.h>
using namespace cv;
int main(int, char**)
{
VideoCapture cap01(0); // open the default camera
cap01.set(CV_CAP_PROP_FRAME_WIDTH,320);
cap01.set(CV_CAP_PROP_FRAME_HEIGHT,240);
//sleep(1);
if(!cap01.isOpened()) // check if we succeeded
return -1;
namedWindow("Camera01",1);
VideoCapture cap02(1); // open the default camera
cap02.set(CV_CAP_PROP_FRAME_WIDTH,320);
cap02.set(CV_CAP_PROP_FRAME_HEIGHT,240);
if(!cap02.isOpened()) // check if we succeeded
return -1;
namedWindow("Camera02",1);
for(;;)
{
Mat frame, frame_1;
//Mat frame02;
cap02 >> frame;
imshow("Camera01", frame);
if(waitKey(30) >= 0) break;
Mat frame_1;
cap02 >> frame_1;
imshow("Camera02", frame_1);
if(waitKey(30) >= 0) break;
}
return 0;
}
是否有任何解決方案來降低連接到單個USB總線的所有網絡攝像頭的帶寬?(通過降低分辨率?)我想知道如何去做。我考慮過bcz,我在許多低分辨率商店看到安全攝像頭。 – Rajdeep
PCI卡解決方案運行良好:D:D – Rajdeep