openCV编译安装-MSCV-Windows10-Qt
openCV编译安装-MSCV-Windows10-Qt
1、准备工作
CMake:下载最新版本即可
openCV:下载任意版本,可以下载源码或者官方编译好的VS版(其中也带有源码),我下载的是opencv-4.5.2-vc14_vc15.exe
Visual Studio:这里使用的是2017
Qt:下载5.14
2、解压
opencv-4.5.2-vc14_vc15.exe运行后会自解压到当前路径下的opencv文件夹中,如下图所示,其中build文件夹为官方已经编译好的,sources为源码;

3、Cmake编译
创建一个build文件夹,打开安装好的CMake软件,讲sources文件夹中的CMakeLists.txt拖到Cmake中,然后点击Browse Build讲路径设置为刚才创建的build。

点击Configure,选择2017,x64,这里注意如果安装了多个版本的vs需要选择Specify native compilers,如下图配置好后点击Finish,然后等待几分钟。

可以选择勾选BUILD_opencv_world,这样编译的所有的库将会生成一个opencv_world420.lib和一个opencv_ts420.lib,方便使用时打包,不勾选将会生成多个库文件。

再点击一次Configure,全部变白后就可以点击Grenerate生成sln

然后点击open Project打开生成的openCV.sln工程

4、Visual Studio编译
选择Release、x64

右键选择ALL_BUILD -> 点击生成或重新生成,就开始编译了,时间会比较长;
编译完成后右键选择INSTALL -> 点击生成或重新生成,将会在build文件夹下生成一个install文件夹,这个文件夹下就是我们编译好的文件。


4、添加环境变量
将编译好的install文件夹复制到自己喜欢的路径下,命名为opencv(名称随意)
打开系统属性 -> 环境变量

添加编译的库文件的路径,然后重启电脑

5、使用
创建一个qt工程,编译器选择与编译opencv相同的编译器,这里使用的是MSVC2017
右键工程,选择添加库

选择opencv_world***.lib

然后会生成如下图所示代码,注意如果没有编译debug版本(就是没有opencv_world***d.lib),需要将下列第二行代码删掉

将/x64/vc15改为include

添加头文件
#include <opencv2/opencv.hpp>
添加命名空间
using namespace cv;
输入如下代码就可以显示图片了
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
Mat image = imread("E:/tp/img/1.png");
imshow("image", image);
}
Widget::~Widget()
{
delete ui;
}
效果如下所示

openCV编译安装-MSCV-Windows10-Qt的更多相关文章
- ubuntu12.04下编译安装x86平台qt库qt-everywhere-opensource-src-4.8.5
本文记录PC(x86)下安装Linux/X11版Qt 开发环境.下载页面:http://qt-project.org/downloads ARM嵌入式版本qt库的编译安装详见<unbunt12. ...
- mac下使用opencv编译安装新模块contrib
opencv-4.0.1 opencv_contrib-4.0.1 提供ippicv下载链接: https://pan.baidu.com/s/1OIJRUqPqAtpMetku8qX36w cont ...
- 【视频开发】【计算机视觉】doppia编译之三:编译安装opencv库
这里我介绍2种方法 (1)利用别人写好的脚本编译,相对来说省力一点 上Github下载别人写好的脚本文件,网址 https://github.com/jayrambhia/Install-OpenC ...
- Linux 下编译、安装、配置 QT
转自Linux 下编译.安装.配置 QT 注意:编译安装耗时费力,且很容易出错,要不断调整编译参数,不推荐使用,否则这将会是一个纠结痛苦的过程. 打算做嵌入式图像处理,计划方案嵌入式Linux+Ope ...
- OpenCV编译以及QT Creator配置
OpenCV编译以及QT Creator配置 在进行编译前,需下载以下工具和源码: CMake ---- 用于编译: 下载地址; https://cmake.org/ 安装在D:\Program Fi ...
- OpenCV使用CMake和MinGW的编译安装
官方教程:https://wiki.qt.io/How_to_setup_Qt_and_openCV_on_Windows 软件环境: Qt:5.11 CMake-3.14.4 OpenCV-4.1. ...
- qt+opencv编译环境的配置
第一步:安装与配置Qt 从https://account.qt.io/downloads下载Qt,并注册账户.开始安装.首先下载qt-opensource-windows-x86-mingw482_o ...
- Qt编译安装qwt错误moc/xxx Error:126
最近搞设计,需要在上位机上绘制曲线,在网上找了找,发现python的matplotlib和Qt的qwt都不错,本着难度最小原则,选择了Qt下面的qwt,安装过程中遇到了编译错误:moc/xxx Err ...
- Ubuntu 编译安装 OpenCV 3.1
目标系统:Ubuntu 16.04-64bit OpenCV 版本:opencv-3.1.0 安装步骤 安装 cmake.sudo apt-get isntall cmake cmake-qt-gui ...
- linux源码编译安装OpenCV
为了尽可能保证OpenCV的特性,使用OpenCV源码编译安装在linux上.先从安装其依赖项开始,以ubuntu 14.04.X为例讲解在Linux上源码编译安装OpenCV,其他linux版本可以 ...
随机推荐
- nginx重新整理——————https[七]
前言 简单介绍一些https. 正文 pki 公钥基础设施: 证书链: tls 通讯过程 验证身份 达成安全套件共识 传递秘钥 加密通讯 sudo yum install epel-release s ...
- js es6 map weakmap
前言 这里介绍一些map和weakmap的一些属性和他们不同之处. 正文 map JavaScript 的对象(Object),本质上是键值对的集合(Hash 结构),但是传统上只能用字符串当作键.这 ...
- 使用EPLAN做项目的收获点
收获点如下: 1.消息检查功能. 最具有代表性的EPLAN软件的辅助检查功能.通过自带检查可以发现设计的错误和警告. 2.导线表导出功能. 使用导入模版.宏设置,导出对应线号表. 此类接线通过一个导线 ...
- 力扣393(java)-UTF-8编码验证(中等)
题目: 给定一个表示数据的整数数组 data ,返回它是否为有效的 UTF-8 编码. UTF-8 中的一个字符可能的长度为 1 到 4 字节,遵循以下的规则: 对于 1 字节 的字符,字节的第一位设 ...
- 力扣168(java)-Excel表列名称(简单)
题目: 给你一个整数 columnNumber ,返回它在 Excel 表中相对应的列名称. 例如: A -> 1B -> 2C -> 3...Z -> 26AA -> ...
- 揭秘!阿里实时数仓分布式事务Scale Out设计
简介: Hybrid Transaction Analytical Processing(HTAP) 是著名信息技术咨询与分析公司Gartner在2014年提出的一个新的数据库系统定义,特指一类兼具O ...
- OpenKruise v0.10.0 新特性 WorkloadSpread 解读
简介: 针对需求,OpenKruise 在 v0.10.0 版本中新增了 WorkloadSpread 特性.目前它支持配合 Deployment.ReplicaSet.CloneSet 这些 wo ...
- [FE] Quasar BEX 热加载区别: Chrome vs Firefox
Chrome 浏览器加载扩展程序时指定的是 src-bex 目录.Firefox 指定的是 manifest.json. Quasar 提供的热加载特性是 修改 src/ 目录里的文件,src-bex ...
- webapi授权认证
webapi授权认证 一.需要类包 Microsoft.AspNetCore.Authentication.JwtBearer 二.相关名词 Authentication(认证):标识用户的身份,一般 ...
- Caused by: java.lang.ClassNotFoundException: org.apache.http.message.TokenParser
写完程序启动不报错,执行时总是报错 java.lang.ClassNotFoundException: org.apache.http.message.TokenParser 认真检查代码没问题,试了 ...