Windows+QtCreater+Opencv环境配置(成功运行)
不得不说,这个过程踩的坑实在是太多了,今天把这个写下来,以做备用。
目录
一、下载准备
1.QtCreater
2.Opencv
3.cmake
二、软件环境安装
1.Cmake安装
①安装过程一路next,除非自己指定安装路径以及环境变量路径,这里就直接让软件自己默认安装以及添加环境变量路径。
2.opencv安装
①指定Opencv安装路径
②进行安装
③安装完成
3.Qtcreater/Qt安装
①打开软件
② skip
③记录安装位置
④勾选Qt安装选项
⑤QtTools选项
⑥同意选项
⑦进行安装
⑧环境变量配置
三、编译Opencv(重头戏)
1.打开cmake(最好每次先清除下cache)
2.在刚才的Opencv解压根目录下创建opencv_build文件夹。(具体名称个人定,但尽量不要有中文)
3.cmake中指定opencv源码目录以及输出目录(刚才创建好的文件夹)
4.点击configure,首次配置编译方式
5.指定编译
6.finish编译
7.更改编译设置
①勾选WITH_QT和WITH_OPENGL
②填写QT5目录
③关闭python选项
④取消OPENCV_ENABLE_ALLOCATOR_STATS
⑤更改发布版本
8.再次编译
9.生成
10.关闭cmake
11.cmd进入刚创建opencv输出目录下
12.根据核心线程编译
13.漫长等待
14.编译完成
15.install 安装
16.添加环境变量
四、Qt启动
1.新建项目
2.选择MinGw
3.生成项目
4.修改.pro项目文件
5.添加opencv程序
6.release运行
一、下载准备
1.QtCreater
这里我是通过清华镜像源下载的,具体版本为:
- - Qt5.9.89(32bit)
- - QtCreater4.8.2
清华镜像源Qt下载网址
下载界面如下:
下载这个之后,默认是Qt5.9.8+QtCreater4.8.2,安装过程在后面。
在这里疑惑过一段时间,是关于32bit与64bit的问题。因为在我的mac本上,我默认安装的是X64的安装包,之前编译的Opencv也是默认编译的x64,所以按照一般的帖子,只要把环境路径往QtCreater的pro文件那么一填,就能够成功运行。但是隔天我到windows的电脑上这样操作就不行,网上windows->qt一般全是32位,那么qt中的mingw安装也是32位的,而Opencv下载之后,预编译版本只有64位的,这就可能造成Opencv的库文件不能进行调用的情况(我是出现了错误,但不确定是否是因为这个情况)。所以就需要用32位的mingw去进行编译,生成32位版的opencv连接库,那么就可以和Qt中的32位配套了。
2.Opencv
这里建议Opencv的版本不要过高,我选择的是Opencv4.4版本。
Opencv下载地址
下载界面如下:
在Opencv官网中,推荐的安装方式有两种,一个是预编译版本的,一个是自编译版本的,我们下载的属于是预编译版本的,里面文件将将涵盖编译好的build文件与source源文件,在build文件家中有x64的lib,dll文件供调用,对于一般的vs+Opencv开发,这个就够了,只需要将Opencv的环境配置以下,以及vs软件的库索引、lib连接加载以下就ok,这个网上很多,一般也都能配置成功,不再多说。
3.cmake
我们用Cmake的目的是将Opencv的源文件写成Makefile文件,告诉mingw怎么去编译它。整个过程比较复杂,比自己手写CmakeLists.txt要方便许多,这一步也是必须的。
下载的时候,尽量下载较新的版本,因为低版本的cmake可能会在某一个过程中不受支持而导致整个项目失败。
Cmake下载链接
这里为了保险,暂时也下载32位的。
到这里,安装包准备完毕。
二、软件环境安装
整个过程在干净的虚拟机中进行操作。
1.Cmake安装
①安装过程一路next,除非自己指定安装路径以及环境变量路径,这里就直接让软件自己默认安装以及添加环境变量路径。
安装成功后,可以看到环境变量中已经存在了cmake的环境变量。
2.opencv安装
①指定Opencv安装路径
②进行安装
③安装完成
3.Qtcreater/Qt安装
①打开软件
② skip
③记录安装位置
④勾选Qt安装选项
MinGW 5.3.0 32-bit 以及所有的Qt选项
⑤QtTools选项
主要勾选MinGw
⑥同意选项
⑦进行安装
等待时间较长。
很棒,99%卡着了:
安装完成
⑧环境变量配置
找到刚安装的QT目录下的路径:C:\Qt\Qt5.9.8\Tools\mingw530_32\bin,添加到环境变量中。
三、编译Opencv(重头戏)
这个过程比较扯,很多次都死到这个地方,需要注意下。
1.打开cmake(最好每次先清除下cache)
2.在刚才的Opencv解压根目录下创建opencv_build文件夹。(具体名称个人定,但尽量不要有中文)
3.cmake中指定opencv源码目录以及输出目录(刚才创建好的文件夹)
源码目录:C:/opencv/opencv/sources
输出目录:C:/opencv/opencv/opencv_build
4.点击configure,首次配置编译方式
这个一定要按这个方式来配!
MinGW Makefiles + Specify native compilers
这个生成好本地makefile之后,我们会用QT自带的32位的mingw去编译。
5.指定编译
编译器的路径在刚才安装好的Qt中,下面是我的目录:
gcc.exe: C:/Qt/Qt5.9.8/Tools/mingw530_32/bin/gcc.exe
g++.exe:C:/Qt/Qt5.9.8/Tools/mingw530_32/bin/g++.exe
6.finish编译
此时,是在编译过程中的,时间较长,等待结束。
此过程,全程应该是正常的,不应有报错红字出现,如果有,注意排查问题。
7.更改编译设置
等待上步结束,执行以下操作:
①勾选WITH_QT和WITH_OPENGL
点击configure编译一遍。
②填写QT5目录
上步编译后,将出现错误:
点击确定,填写QT5目录:
我的QT5的目录为:C:/Qt/Qt5.9.8/5.9.8/mingw53_32/lib/cmake/Qt5
这里建议点击按钮进行路径选择,不要直接复制,以免引起不必要的麻烦。
③关闭python选项
这个步骤是在试错了无数次后,发现的问题,尽管有时候可以添加python2,python3的路径,但是在最后的阶段,总会报出 can't find "all"之类的错误,这里直接将Python取消勾选。
④取消OPENCV_ENABLE_ALLOCATOR_STATS
搜索:OPENCV_ENABLE_ALLOCATOR_STATS,取消勾选
⑤更改发布版本
搜索:MAKE_BUILD_TYPE,改为release
8.再次编译
点击configure 再次编译。
9.生成
编译完成后,点击生成
10.关闭cmake
出现如下界面,cmake的任务就结束了,关闭cmake
11.cmd进入刚创建opencv输出目录下
12.根据核心线程编译
mingw32-make -j [+线程数]
根据自身电脑线程数进行更改,提升速度,我的是虚拟机,只有2。
13.漫长等待
这个过程中,如果短暂卡住停滞了,按下回车确定。
14.编译完成
15.install 安装
mingw32-make install
16.添加环境变量
将编译完成后的bin目录进行添加,我的目录是:C:\opencv\opencv\opencv_build\install\x64\mingw\bin
四、Qt启动
1.新建项目
2.选择MinGw
3.生成项目
4.修改.pro项目文件
添加路径,具体路径根据自己安装目录进行修改。
INCLUDEPATH += C:\opencv\opencv\opencv_build\install\include
INCLUDEPATH += C:\opencv\opencv\opencv_build\install\include\opencv2LIBS += C:\opencv\opencv\opencv_build\install\x64\mingw\bin\libopencv_core440.dll
LIBS += C:\opencv\opencv\opencv_build\install\x64\mingw\bin\libopencv_highgui440.dll
LIBS += C:\opencv\opencv\opencv_build\install\x64\mingw\bin\libopencv_imgcodecs440.dll
LIBS += C:\opencv\opencv\opencv_build\install\x64\mingw\bin\libopencv_imgproc440.dll
LIBS += C:\opencv\opencv\opencv_build\install\x64\mingw\bin\libopencv_features2d440.dll
LIBS += C:\opencv\opencv\opencv_build\install\x64\mingw\bin\libopencv_calib3d440.dll
5.添加opencv程序
将mainwindow.cpp修改至如下:
#include "mainwindow.h"
#include "ui_mainwindow.h"#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow)
{ui->setupUi(this);// read an imagecv::Mat image = cv::imread("C:/1.jpg", 1);// create image window named "My Image"cv::namedWindow("My Image");// show the image on windowcv::imshow("My Image", image);
}MainWindow::~MainWindow()
{delete ui;
}
6.release运行
大功告成!
整个过程比较艰辛,绝大部分原因是自己对编译理解不到位,以至于现在我仍旧是不懂:最终目标我才用的是32bit编译,但是opencv仍出现的是x64的安装目录,但好在还是运行成功了。像刚开始所说,我mac本的x64是直接能用的,但是换到windows上x64的opencv dll文件使用起来是有问题的,所以才有了这整个过程,如果你的能够直接使用,不用这么麻烦,那么是再好不过了。
整体来说是能用了,但遗留了一个问题,为什么编译出来的Opencv,install之后仍是x64,而不是x86呢?
Windows+QtCreater+Opencv环境配置(成功运行)相关推荐
- OpenCV环境配置:Ubuntu18.04编译OpenCV4.2.0和contrib模块记录
OpenCV环境配置:Ubuntu18.04编译OpenCV4.2.0和contrib模块记录 1.下载源码和安装依赖包 2.解压源码文件和配置路径 3.配置Cmake并编译OpenCV 4.导入Op ...
- C语言入门系列一之C语言介绍、环境配置和运行执行
鉴于书本和教材文字过多.又难懂的缺点,所以我打算写一系列通俗移动的C语言入门教程,让大家在短时间内学习和掌握C语言,以及遇到C语言的一些问题该如何得到快速的解决.希望这些系列的教程,能够帮助到大家!该 ...
- Vulkan Windows VS2022 开发环境配置
1. 确保编译器支持C++17, 所以需要Visual Studio 2017及其以上版本,我这里用的是2022.确保环境安装了CMake.CMake-gui 可选装. 2. 下载Vulkan SDK ...
- YOLOX——Windows 10下环境配置
前言 1.最近非常火的YOLOX,是旷视提出并开源新一代实时目标检测网络,具体的算法原理和性能可以转到github,想上手试试,如果是Linux话,可以按照官方文档给步骤一步步执行下去就可以了,是Wi ...
- VMWare虚拟OSX系统搭建ios、iphone开发环境并成功运行模拟器(2016)
虚拟OSX系统搭建ios.iphone开发环境并成功运行模拟器 搭建ios.iphone开发环境,如果你是土豪,又或者是 愿意砸钱投资.直接买个MacBook就可以了.然后从AppStore下载所需的 ...
- Windows下LLVM环境配置
Windows下LLVM环境配置 目录 Windows下LLVM环境配置 1. 命令行下载并构建VS 2017项目 2. 项目构建过程中出现的细节 3. 心得体会 4. 参考文献 1. 命令行下载并构 ...
- 《动手学深度学习》 环境配置成功经验
<动手学深度学习> 环境配置成功经验 一.安装Anaconda3 二.安装CUDA 三.创建虚拟环境 1.创建新环境 2.激活环境 3.逐个下载emvironment.ym里的其他包 4. ...
- Python + OpenCV 环境配置
"Python" + "OpenCV" 环境配置 1. 步骤 1. 下载Python2.73, 安装, 并配置Python环境变量:".\Progra ...
- pythoncharm如何安装opencv_Pycharm Opencv环境配置
1. 安装Python 我安装的是python 2.7.14 2.一步步点击next进行安装即可,安装完毕后如果出现缺少java环境变量的,需要下载JDK安装包 http://www.orac ...
最新文章
- tomcat环境配置
- Win32 ListView控件基本使用
- 关于单表5-10亿行记录如何快速查询的问题,欢迎童鞋们都进来讨论
- 烂泥:智能DNS使用与配置
- u盘显示项目不在计算机zhng,能装在u盘上的操作系统有哪些?
- 十一、 C++特性之begin()与end()
- clion 插件_IDEA必备插件系列-Rainbow
- 字节跳动副总裁喊话腾讯:停止无理由封杀飞书;Git服务器配置错误导致日产汽车源码泄露;Linux5.10.5 发布
- 关于区块链的解读和简单Python实现
- 多线程JAVA篇(一)
- 设置javadoc模板
- JSP程序设计 第2版 pdf
- c# excel vsto 表格偏移Offset
- linux常用net命令
- cer证书生成以及签名验签详细篇(keytool 命令)
- 怎么使用JavaScript进行进制…
- 金蝶eas怎么引出凭证_金蝶KIS软件操作技巧/百问百答
- 留学生 电脑安全与维护手册 (留学须知)
- 苹果cmsv10+2022新版海螺影视主题模板“带后台“M3.1全解密版本+萌芽采集插件
- [万字长文]使用 React 重写学成在线前端项目 I 代码完整可运行,步骤有详解
热门文章
- 全国脱贫攻坚:互联网公司的作用几何?
- 李宏毅 2020机器学习作业1 详细解析
- SAP Fiori Belize 主题应用在 SAPGUI 里的一些要点
- 总裁在线带货,可口可乐京东新通路618直播间销售额破千万
- light动名词_动名词专项训练
- mysql away_MySQL server has gone away报错原因分析
- java中指数函数的使用方法图解,基本初等函数 指数函数 代码篇
- javaWeb邮件发送原理及实现
- c语言输出cad scr文件,屏幕保护程序文件scr关联被autocad修改为CAD脚本的恢复
- 耐人寻味的“费米估算法”