linux下qt5+opencv4.5开发的高拍仪驱动,如何实现通过vid pid打开指定的usb摄像头?

qt5+opencv4.5开发的高拍仪驱动,希望通过vid pid打开指定的usb摄像头。deviceName打印出来video0和video1的顺序并不固定,desc描述也相同,求请指教!

int main(int argc, char *argv[])
{
QList cameras = QCameraInfo::availableCameras();

if(cameras.empty()){
    QMessageBox::warning(nullptr, "设备错误", "无法获取设备,请检查设备连接情况 !");
    return 0;
    //return a.exec();
}

int cameraId[2] = {0};
for(int i = 0; i < cameras.size(); i++){
    QRegExp rx("\\d+");
    rx.indexIn(cameras[i].deviceName());
    QString index = rx.cap();
    cameraId[i] = index.toUInt();
}

// qDebug() << "cameraId[0] = " << cameraId[0] << "cameraId[1] = " << cameraId[1] << endl;
cameraInit(cameraId[0], cameraId[1]);
mainWindowCamera w;
w.show();

return a.exec();

}

你可以看下这个,用opencv根据pid打开摄像头
Windows平台 OpenCV根据VidPid打开指定摄像头 - 知乎 蓝色字体是改写部分,其它是OpenCV源码,下述代码在OpenCV4.0上测试通过。 https://zhuanlan.zhihu.com/p/268212567