Qt学习之路(一)#Qt中OpenCV以及相机环境配置

Qt中OpenCV以及相机环境配置

最近在学习使用Qt进行软件开发,工作方向是机器视觉的,所以首先碰到的问题就是OpenCV和相机的环境配置问题,在这里把自己的一些想法整理后记录下。

  1. .pro文件配置

    在Qt中,我们需要再.Pro文件中添加lib文件路径以及Include文件路径(如下图框出的Vimba相机配置)。
    Qt学习之路(一)#Qt中OpenCV以及相机环境配置

    在配置过程中,推荐在项目文件的目录下,建立一个env的文件夹用于存放相机环境文件以及其他第三方库的对应文件(例如OpenCV,QWT这类常用的第三方库)。
    Qt学习之路(一)#Qt中OpenCV以及相机环境配置
    打开项目中的xxxx.pro文件,在文件中添加opencv的includepath和lib路径。如下图所示:
    Qt学习之路(一)#Qt中OpenCV以及相机环境配置
    配置完成后可运行如下代码进行测试:

    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
  1. 环境变量配置

Qt Creator中一般使用系统自带的环境变量,如下图所示,我们也可以直接在Qt中对环境变量进行编辑。以Vimba相机为例,一般在安装的过程中就会添加对应的一些环境变量,一般需要有以下几条环境变量,其余的相机同理。
… …\Vimba21\VimbaCPP\Bin\Win32
… …\Vimba_2.1\VimbaImageTransform\Bin\Win32;
… …\Vimba_2.1\Tools\Viewer\Win32

由于环境产生的错误一般有如下两种:1.下方状态栏跳出红字“程序异常结束”;2.下方状态栏跳出“……无法解析的外部符号……”。
Qt学习之路(一)#Qt中OpenCV以及相机环境配置
此时我们需要查看自己的环境变量是否添加;如何判断添加什么环境变量,可以通过运行软件生成的.exe文件判断缺少的文件,从而知道添加的环境变量路径信息(也可将缺少的文件移动到debug文件夹中。
注意:在更新环境变量后需要重新启动Qt并且qmake一下,否则运行时仍会出错。
Qt学习之路(一)#Qt中OpenCV以及相机环境配置