方法一,使用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.libINCLUDEPATH += $$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文件,结论加不加没区别