Qt中OpenCV以及相机环境配置
最近在学习使用Qt进行软件开发,工作方向是机器视觉的,所以首先碰到的问题就是OpenCV和相机的环境配置问题,在这里把自己的一些想法整理后记录下。
-
.pro文件配置
在Qt中,我们需要再.Pro文件中添加lib文件路径以及Include文件路径(如下图框出的Vimba相机配置)。
在配置过程中,推荐在项目文件的目录下,建立一个env的文件夹用于存放相机环境文件以及其他第三方库的对应文件(例如OpenCV,QWT这类常用的第三方库)。
打开项目中的xxxx.pro文件,在文件中添加opencv的includepath和lib路径。如下图所示:
配置完成后可运行如下代码进行测试:using namespace std;
using namespace cv;int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w; w.show(); return a.exec(); Mat image = imread("D:\\test.jpg"); cvNamedWindow("window", CV_WINDOW_NORMAL); imshow("window",image); waitKey(0); }
附:Qt配置OpenCV环境代码
#opencv env
INCLUDEPATH += envs\opencv\include
INCLUDEPATH += envs\opencv\include\opencv
INCLUDEPATH += envs\opencv\include\opencv2
LIBS += -L$$PWD\envs\opencv\x86\vc11\lib\
-lopencv_core2411\
-lopencv_highgui2411\
-lopencv_imgproc2411\
-lopencv_flann2411\
-lopencv_legacy2411\
-lopencv_nonfree2411\
-lopencv_features2d2411
-lopencv_core2411d\
-lopencv_highgui2411d\
-lopencv_imgproc2411d\
-lopencv_flann2411d\
-lopencv_legacy2411d\
-lopencv_nonfree2411d\
-lopencv_features2d2411d
- 环境变量配置
Qt Creator中一般使用系统自带的环境变量,如下图所示,我们也可以直接在Qt中对环境变量进行编辑。以Vimba相机为例,一般在安装的过程中就会添加对应的一些环境变量,一般需要有以下几条环境变量,其余的相机同理。
… …\Vimba21\VimbaCPP\Bin\Win32
… …\Vimba_2.1\VimbaImageTransform\Bin\Win32;
… …\Vimba_2.1\Tools\Viewer\Win32
由于环境产生的错误一般有如下两种:1.下方状态栏跳出红字“程序异常结束”;2.下方状态栏跳出“……无法解析的外部符号……”。
此时我们需要查看自己的环境变量是否添加;如何判断添加什么环境变量,可以通过运行软件生成的.exe文件判断缺少的文件,从而知道添加的环境变量路径信息(也可将缺少的文件移动到debug文件夹中。
注意:在更新环境变量后需要重新启动Qt并且qmake一下,否则运行时仍会出错。