qt6使用opencv根据摄像头名称打开摄像头
opencv的VideoCapture类下的.open方法只能通过摄像头的序号来打开摄像头,所以原理也是通过序号来打开摄像头,只是提供一种将摄像头的名称与其对应的序号关联起来的方法。
·
opencv的VideoCapture类下的.open方法只能通过摄像头的序号来打开摄像头,所以原理也是通过序号来打开摄像头,只是提供一种将摄像头的名称与其对应的序号关联起来的方法。
#include <QMediaDevices>
#include <QCameraDevice>
// 获取视频输入设备列表
QList<QCameraDevice> videoDevices = QMediaDevices::videoInputs();
// 遍历设备列表,输出设备名
for (const QCameraDevice &device : videoDevices)
{
qDebug() << "Camera name:" << device.description();
ui->comboBox->addItem(device.description()); // 添加摄像头名称到comboBox
}
int capnum = 0; // 摄像头对应序号
for(int i = 0; i < videoDevices.size(); i++)
{
if(videoDevices.at(i).description() == ui->comboBox->currentText()) //依据名称打开摄像头
{
capnum = i; // 找到对应序号
}
}
if (!cap.open(capnum))
{
//qDebug() << "Failed to open camera";
QMessageBox::critical(this, tr("Error"), tr("Failed to open cap"));
return;
}
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)