Linux下OpenCV打开USB接口的UVC摄像头的方法以及索引号为什么要是202的原因

一般来说,USB的UVC摄像头在LINUX平台下通过V4L驱动来使用。OpenCV打开USB的UVC摄像头一般也通过V4L驱动来打开。打开方法网上都有,一般就是通过VideoCapture的open(int index)函数来打开,其中index设为202。如下:

VideoCapture cap;
Mat frame;
if(!cap.open(202))
    cout<<"camera error!"<<endl;
while(1)
{
    cap>>frame;
//do what you want here
//put your code here
}
注意这个打开的索引号,只有设置为202才能打开UVC摄像头,设置成其他的往往都无法开UVC摄像头,和windows平台不一样。那么,为什么UVC摄像头的索引需要设为202呢?我们可以看下Opencv的源码,就可以明白。
CV_IMPL CvCapture * cvCreateCameraCapture (int index)
{
    // interpret preferred interface (0 = autodetect)
    int pref = (index / 100) * 100;

    // remove pref from index
    index -= pref;

    // local variable to memorize the captured device
    CvCapture *capture = 0;

    switch (pref)
    {
    default:
        // user specified an API we do not know
        // bail out to let the user know that it is not available
        if (pref) break;

#ifdef HAVE_MSMF
    case CV_CAP_MSMF:
        if (!capture)
            capture = cvCreateCameraCapture_MSMF(index);
        if (pref) break;
#endif
#ifdef HAVE_TYZX
    case CV_CAP_STEREO:
        if (!capture)
            capture = cvCreateCameraCapture_TYZX
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值