兜兜转转又回到了 OpenCV。因为项目需要,人脸识别+二维码解码,又回到了 OpenCV。先用 Win10 做功能验证,然后再转移到 Cortex-A8 的开发板。
首先感谢这篇文章的指导,https://blog.csdn.net/weixin_43763292/article/details/112975207。这里我只是记录在自己机器上编译开发环境碰到问题。
Win10
Qt5.13.2 + mingw73_64。安装路径为 D:QtQt5.13.2。
OpenCV4.5.1。安装路径为 D:opencv4.5.1。
Cmake 3.18.0-rc1。安装路径为 C:Program FilesCMake。
这个就忽略了。
CMake我选择了 3.18 版本,自己也搞不清为什么没有用最新版。下载地址如下,https://cmake.org/files/v3.18/,如下图。
安装我们就跳过吧,这个是基本技能。记得吧路径加上,否则就要自己手动添加了。
OpenCV 的官网为 https://opencv.org/releases/,我选择了上面博主一样的 OpenCV4.5.1,而不是最新版本。
下载完源码包后,运行并解压文件,我的解压目录如下。
其中 build 和 sources 目录是自带的,opencv-build 是我自己添加的,用来放编译后的文件。
我使用 MinGW 来编译。
使用 cmake 生成编译文件打开 cmake-gui,路径 C:Program FilesCMakebin。运行如下
填入对应的 Source code 目录和 build the binaries 目录,完成后点击 Configure 按钮,进入下面一个界面。
上图来自他人博主。然后开始设置编译器。如下图。
根据自己的环境设置。我对应的 gcc 为 D:QtQt5.13.2Toolsmingw730_64bin,g++ 为 D:QtQt5.13.2Toolsmingw730_64bin。如下图。
点击Finish。开始编译,这里需要一点时间。Configuring done之后,会出现一大片红的,不用管,下拉将WITH_OPENGL和WITH_QT选中即可,如下图。
再次点击Configure。继续编译,我这里出现下面的错误。道歉前面没有截屏。
opencv Qt5_DIR-NOTFOUND
意思就是找不到 Qt5 目录。按照自己机器按照 Qt 的目录,我的为 D:QtQt5.13.25.13.2mingw73_64libcmakeQt5,如下图。
解决方法如下图。在 search 框中输入 Qt5_DIR,在对应的位置输入正确的目录。
然后继续点 Configure之后,红色消失,最后点击 Generate。Generate 完成之后,我们指定的目录就会出现如下的文件。
打开 cmd 窗口,将目录变换到对应的路径,我这里是 D:opencv4.5.1opencv-build。
mingw32-make -j 8
就是
8
8
8 线程编译。耐心等待编译完成。如果一切正常,得到如下结果。
mingw32-make install
这样就会安装到 D:opencv4.5.1opencv-buildinstall 路径下,当然我们也可以指定安装路径。
安装好的情况如下图。
需要将 D:opencv4.5.1opencv-buildinstallx64mingwbin 加入到环境变量中。如下图。
我是添加到系统环境变量中。
如上图,已经在路径添加到了环境变量中。
下面我们来测试一下开发环境。
生成 QT 程序新建一个 Qt Widgets Application。
名字为 OpenCVTest
编译系统选择 qmake
Detail 选择缺省的。Kit Selection 选择 MinGW 64。
点击完成。这样 QCreator 就帮助我们完成了基础项目。
打开项目文件 OpenCVTest.pro,加入以下的环境支持。
INCLUDEPATH += D:OpenCV4.5.1opencv-buildinstallinclude LIBS += D:opencv4.5.1opencv-buildliblibopencv_*.a
如下图所示。
打开 mainwindow.cpp,加入
#include#include #include using namespace cv;
如下图
使用 OpenCV 的 Mat 来读取指定路径的图片,用于测试 OpenCV 开发环境是否成功配置完成。
在 mainwindows.cpp 中增加如下部分代码,从指定的绝对路径中打开图片。
Mat img = imread("d:\xxx\xxx.png", 1);//一定要使用绝对路径,其他可以回报错
namedWindow("Display window", WINDOW_AUTOSIZE);
imshow("Display window", img);
注意一个细节,不要打开使用带有中文的。
想家里的小朋友了。运行结果如下图。
这样,我们就搭建完成基础 OpenCV + Qt 5 的开发环境。
后面将继续更新下一步内容,包括人脸识别,二维码识别等。



