USB 3.0端口中的摄像头视频关注失败



当我的相机连接到USB 2.0端口时,为什么以下代码可以工作,但是当相机连接到USB 3.0端口时,我会遇到"无相机"错误?我正在Ubuntu上运行OpenCV 2.4 12.04 LTE 32位。我也看到了其他摄像头和驱动程序的问题,所以我怀疑这可能是Linux

的问题
#include <stdio.h>
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/core/core.hpp"
using namespace cv;
int main(){
    Mat img;
    int imgw = 640;
    int imgh = 480;
    VideoCapture cap(0); // open the default camera
    if(!cap.isOpened()){ // check if we succeeded
        printf("No cameran");
        return -1;
    }
    cap.set(CV_CAP_PROP_FRAME_WIDTH,  imgw);
    cap.set(CV_CAP_PROP_FRAME_HEIGHT, imgh);
    namedWindow( "Display Image", CV_WINDOW_AUTOSIZE );
    for( ; ; ){
        cap.read( img );
        imshow( "Display Image", img );
        if( waitKey( 5 ) == 27 ) break;
    }
    return 0;
};

编辑:还通过连接到USB 3.0端口的USB 2.0集线器引发错误。

编辑2:实际上,此代码在重新启动后起作用一次。之后,摄像机不再出现在/开发中,也不再出现在LSUSB的输出中。在上述程序的一项运行后,该卡上工作的USB 3.0端口。

问题似乎取决于计算机,或者更具体地说是USB卡。我现在在另外两台计算机上尝试了此操作,并且可以正常工作。

所以一个解决方案:尝试其他计算机。

最新更新