QT5.9.4与OpenCV3.0.0配置
大疆最近推出了他们的第二代妙算微型电脑manifold2,无人机和哨兵由于设计尺寸等原因考虑,优先选择妙算2作为机载电脑搭配,查看妙算2的技术手册发现配置的ubuntu版本为16.04LTS,opencv版本是3.0.0,故视觉组统一软件开发环境为ubuntu16.04、QT5.9.4、oepncv3.0.0,方便后期代码直接在妙算2上可以跑起来。
(一)QT安装与OpenCV源码编译
在OpenCV的官网下载OpenCV3.0.0的源码,下载后是一个zip压缩文件,再下载QT5.9.4的run文件,在终端里面输入./qt-opensource-linux-x64-5.9.4.run就可以直接运行安装QT5.9.4了,是不是非常方便。
接下来就是配置OpenCV3.0.0了,先把OpenCV的压缩包解压到home文件夹下,再添加OpenCV所需要的依赖库,参考这篇博文:在我的台式机上参考这篇博文就可以直接使用opencv库了,但在我的笔记本上却不行,详情请继续阅读。
https://www.cnblogs.com/fx-blog/p/8213704.html.
根据上面博文的教程依次执行,就可以在ubuntu里面编译好OpenCV的源码了,此时在/usr/local/lib下看见OpenCV的编译结果了。如果在编译期间,遇到有些文件没有找到,则自行百度解决(在编译的过程中,ippicv_linux_20141027.tgz需要在线下载,但速度非常慢,我们事先准备好这个压缩包,然后拷贝到/home/young/opencv-3.0.0/3rdparty/ippicv/downloads/linux-8b449a536a2157bcad08a2b9f266828b,这是我自己的路径,读者自行修改)。
由于国庆放假,我把项目转到笔记本上做,发现了很多工程创建与opencv编译的问题。
1、直接把台式机的工程拷贝到笔记本上,点击构建项目,发现显示“不能构建”,百度搜索问题后,发现要在QT界面的左边点击“项目”,在此选项下修改工程的构建目录即可。
2、GCC/G++编译器默认的std是c++98的,不能支持多线程与mutex互斥量,显然要让QT支持C++11的新特性,百度后发现要在pro文件中,输入QMAKE_CXXFLAGS += -std=c++11即可,实测发现仅输入config -= c++11不行。
3、运行工程时,提示找不到opencv库,但是我源码编译opencv时,已经在usr/local/lib中看到相关的so文件了嗒,究其原因,是因为我没有把编译步骤执行完毕,参考这篇博文。
https://blog.csdn.net/public669/article/details/99044895.
(二)基于QT建立OpenCV项目
在欢迎界面,选择新建项目,选择Non-Qt project C++模板,然后一路点击下一步,直到完成项目的创建。QT不支持项目名字是中文。
QT会有输入不了中文的bug,解决办法:参考这篇博文
https://blog.csdn.net/hanshihao1336295654/article/details/82885777.
在项目的pro文件内输入OpenCV的库链接,这样就能在QT里编写OpenCV的代码了。
INCLUDEPATH += /usr/local/include \
/usr/local/include/opencv \
/usr/local/include/opencv2
LIBS += /usr/local/lib/libopencv_imgproc.so \
/usr/local/lib/libopencv_highgui.so \
/usr/local/lib/libopencv_core.so \
/usr/local/lib/libopencv_imgcodecs.so \
/usr/local/lib/libopencv_video.so \
/usr/local/lib/libopencv_videoio.so \
/usr/local/lib/libopencv_calib3d.so \
/usr/local/lib/libopencv_imgproc.so.3.0 \
/usr/local/lib/libopencv_ml.so \
/usr/lib/x86_64-linux-gnu/libpthread.so
注意事项:
1、显示的图片要放在工程里该项目的build文件夹内,不然就要通过绝对路径在程序里加载图片了。
2、如何在一个工程里调用多个项目,在左下角的Debug内选择哪个为当前项目,点击“运行”按钮时,就执行哪个项目。