方法一,使用qt中的QCameraInfo::availableCameras()调用海康摄像头
结论,失败
想的太天真
#include "mainwindow.h"
#include <QApplication>
#include <QCamera>
#include <QCameraInfo>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
// MainWindow w;
// w.show();
//读取所有摄像头信息
QList<QCameraInfo> infos = QCameraInfo::availableCameras();
foreach(QCameraInfo info, infos){
qDebug()<<info.description()<<info.deviceName();
}
return a.exec();
}
方法二:使用RTSP协议
问了同事,RTSP不适合,或者是压根不能用在工业相机上,以后再考究,略
方法三(成功):qt的pro文件中配置
.pro文件中只加入这三行
LIBS += $$PWD/Libraries/MvCameraControl.lib
INCLUDEPATH += $$PWD/include/
DEPENDPATH += $$PWD/include/
报错1: error: D:\program\hk3\hk\Libraries\MvCameraControl.lib: No such file or directory
路径不对
报错2:error: undefined reference to `__imp_MV_CC_EnumDevices’
MvCameraControl.lib文件位数不对,换成对应你编译器的位数
通过右键添加库
也不知道为什么,不好使不如自己修改pro了
报错3:D:\MVS\Development\Includes\PixelType.h:179: error: ‘__int64’ does not name a type; did you mean ‘__divtc3’?
在你的工程中,调用了海康sdk的source文件中,添加
#include "mainwindow.h"
后不再报错,原因未知。。
盲试:
- 程序目录中加入MvCameraControl.dll文件,结论加不加没区别