win10下Qt调用opencv

温馨提示:Qt调用opencv,不能直接用你在其他编程软件调用的opencv库(本人试过不能用)。想要使用,必须是opencv源码经MinGW32-make(或其他版本)编译,且使用MinGW编译的版本要与QT上MinGW版本相同。

想要实现Qt调用opencv,1.你可以找现成的对应版本的库,2.就是自己编译。这里提倡自己编译。下面也是编译的方法

需要的东西:(这里都是我自己的版本,你也可以是其他的)
opencv4.5.4(win10版本和源码都可,win10版本sources文件夹下就是源码)
Cmake3.22.0(这里下载二进制编译好的,有exe文件可直接使用)
MinGW530_32(Qt安装完就会有,我的在这里Qt5.9.6\Tools\mingw530_32\bin\mingw32-make.exe)

第一步:使用Cmake编译opencv源码得到MinGW可编译文件

#在这个目录下找到cmakm-gui.exe文件
D:\CMake\cmake-3.22.0-windows-x86_64\bin

双击运行
win10下Qt调用opencv_第1张图片

Where is the source code: D:\OpenCV4.5.4\opencv\sources #源码
Where to build the binaries: E:/bn-build   # 这个文件夹要新建,编译好的文件所在位置

把Advanced选上
点击Configure
win10下Qt调用opencv_第2张图片
选MinGW Makefiles
选Specify native compilers
点击 Next

win10下Qt调用opencv_第3张图片

C   E:/QT/Qt/Qt5.9.6/Tools/mingw530_32/bin/gcc.exe # Qt安装位置
C++ E:/QT/Qt/Qt5.9.6/Tools/mingw530_32/bin/g++.exe # Qt安装位置
Fortran不用管

点击Finish
(我这里编译好之后再编译就报错了,图是没有了,我去盗几张图)
Configuring done之后,会出现一大片红的,不用管,下拉将WITH_OPENGL和WITH_QT选中即可,然后再次点击Configure
win10下Qt调用opencv_第4张图片

此时仍会有红色出现

win10下Qt调用opencv_第5张图片
这时选择Qt5-DIR,把后面的(Value)地址改成你的Qt地址
然后点击Configure

如果还有红的

Set Qt5Concurrent_DIR to E:\QT\Qt\Qt5.9.6\mingw73_64\lib\cmake\Qt5Concurrent
Set Qt5Core_DIR to    E:\QT\Qt\Qt5.9.6\mingw73_64\lib\cmake\Qt5Core
Set Qt5Gui_DIR to     E:\QT\Qt\Qt5.9.6\mingw73_64\lib\cmake\Qt5Gui
Set Qt5OpenGL_DIR to  E:\QT\Qt\Qt5.9.6\mingw73_64\lib\cmake\Qt5OpenGL
Set Qt5Test_DIR to    E:\QT\Qt\Qt5.9.6\mingw73_64\lib\cmake\Qt5Test
Set Qt5Widgets_DIR to E:\QT\Qt\Qt5.9.6\mingw73_64\lib\cmake\Qt5Widgets
Set Qt5_DIR to        E:\QT\Qt\Qt5.9.6\mingw73_64\lib\cmake\Qt5

对应的自己设置一下

红色消失,最后点击Generate
红色消失,最后点击Generate
红色消失,最后点击Generate
还有红色,就不能Generate

完成之后,关闭Cmake

win+r,输入cmd,进入终端
win10下Qt调用opencv_第6张图片

打开E:/bn-build文件夹

E:
cd bn-build
mingw32-make -j8 #可根据自己的cpu的核数改变

可能报:“mingw32-make 不是内部或外部命令” 的错误
解决办法:用everything搜索mingw32-make.exe。将它的路径,添加到path环境变量中。或者将mingw32-make.exe复制到C:\Windows\System32目录下。
然后再mingw32-make -j8

过程中还可能报
win10下Qt调用opencv_第7张图片

[ 65% ] Building RC object modules/world/CMakeFiles/opencv_world.dir/vs_version.rc.obj
gcc: error: long: No such file or directory
C:\Mingw-w64\mingw32\bin\windres.exe: preprocessing failed.
mingw32-make[2]: *** [modules\world\CMakeFiles\opencv_world.dir\build.make:11240: modules/world/CMakeFiles/opencv_world.dir/vs_version.rc.obj] Error 1
mingw32-make[1]: *** [CMakeFiles\Makefile2:4789: modules/world/CMakeFiles/opencv_world.dir/all] Error 2
mingw32-make: *** [Makefile:179: all] Error 2

其他的都不重要只看“No such file or directory”“vs_version.rc.obj”就可以用此办法
解决办法:打开modules*world*\CMakeFiles\opencv_world.dir\build.make
world是根据自己的错误变化的。
如果modules/photo/CMakeFiles/opencv_world.dir/vs_version.rc.obj,就打开modules*photo*\CMakeFiles\opencv_world.dir\build.make
然后找到文件中: cd /d D:\opencv\bulid_mingw\modules\world && C:\Mingw-w64\mingw32\bin\windres.exe -O coff $(RC_DEFINES) $(RC_INCLUDES) $(RC_FLAGS) D:\opencv\bulid_mingw\modules\world\vs_version.rc CMakeFiles\opencv_world.dir\vs_version.rc.obj
回到终端输入,和文件中对应的

cd /d D:\opencv\bulid_mingw\modules\world
C:\Mingw-w64\mingw32\bin\windres.exe D:\opencv\bulid_mingw\modules\world\vs_version.rc -O coff CMakeFiles\opencv_world.dir\vs_version.rc.obj

执行完之后

E:
cd bn-build
mingw32-make -j8 

继续编译
100%完成之后,输入

mingw32-make install

win10下Qt调用opencv_第8张图片
到此opencv编译完成。

之后到Qt工程里,在.pro文件里,添加

INCLUDEPATH += E:\bn-build\install\include/
							E:\bn-build\install\include\opencv2
LIBS += E:\bn-build\lib\libopencv_*.a

之后就可以在Qt里愉快的敲代码了!!!!!

你可能感兴趣的:(Qt(C++),pycharm,python,jar)