Windows下CMake编译安装OpenCV

这是一个面向新手的在windows上运进opencv, helloword的教程. 在这里我们使用vs2019来编译opencv, 并运行一个helloworld来展示如何用CMake来编译运行.
 
0. 准备工作
    需要的软件: VisualStudio 2019 社区版, CMake, 在系统变量下加入VS2019 MSBuild.exe 的路径.
 
1. 下载:

在 https://opencv.org/releases/ 下载source文件

2. 编译:
    打开CMakeGUI 如图:在Browser Source处选择解压后的源码, 在Build处选择build结果存放的目录.
 然后勾选需要build的内容, 最后点 Generate. 在这里我们选择 Visual Studio 16 2019, 设置 平台为 x64

生成过程中可能会遇到网络问题导至的下载错误(需要自行解决网络问题), 链接库错误等(可考虑去掉不需要的功能)
如:在这里我们选择了opencv_world, 并去掉了对于python3的支持.

3. 编译
生成结束后, build文件夹下内容应如下所示:
我们用vs打开OpenCV.sln, 选择ALL_BUILD后进行编译
如果成功会有如下的显示:

这时build文件夹下应该会有生成出的install文件夹(没有就选install再进行一次编译)内容如下. 
能看到这个, 我们的opencv就编译好了.

最后需要在系统环境变量的PATH中加入opencv的bin路径: D:\Developments\opencv_build\install\x64\vc16\bin 
 
4. 编译运行helloworld
我们同样使用cmake来编译运行helloworld
 
demo.cpp
 1 #include "opencv2/opencv.hpp"
2 #include "opencv2/highgui/highgui.hpp"
3
4 using namespace cv;
5
6 int main(int argc, char** argv) {
7 //create a gui window:
8 namedWindow("Output",1);
9 //initialize a 120X350 matrix of black pixels:
10 Mat output = Mat::zeros( 120, 350, CV_8UC3 );
11 //write text on the matrix:
12 cv::putText(output, "Hello World", cv::Point(10,output.rows-18),
13 cv::FONT_HERSHEY_SIMPLEX, 0.4, cv::Scalar(200,200,250), 1, 8);
14 //display the image:
15 imshow("Output", output);
16 //wait for the user to press any key:
17 waitKey(0);
18 return 0;
19
20 }
下面是一个基础的opencv. hello world级cmake文件. 先设置 OpenCV_DIR 到install文件夹, cmake的 find_package 会自动找到头文件和库的位置. 在编译完程序后, 需要link opencv_world这个库.
 
CMakeLists.txt
 1 project("DEMO")
2
3 cmake_minimum_required(VERSION 3.21)
4
5 set(OpenCV_DIR "D:/Developments/opencv_build/install") # opencv安装位置
6 find_package(OpenCV REQUIRED) # 让CMake自动找OpenCV的头文件和库
7
8 include_directories(${OpenCV_INCLUDE_DIRS}) # 要包含的头文件
9 add_executable(demo demo.cpp)
10 target_link_libraries(demo "D:/Developments/opencv_build/install/x64/vc16/lib/opencv_world453d.lib" ) # 链接OpenCV库
 
新建build文件夹后, cmake ..
再 MSBuild.exe DEMO.sln 进行编译
最后, 生成好的文件会在 Debug 下

Windows下CMake编译安装OpenCV的更多相关文章

  1. 在 Linux 下用 CMAKE 编译安装 OpenCV 3.2.0

    [安装相关软件和库] 1.安装CMAKE:这里使用apt-get来安装; CMAKE 是一个跨平台编译工具,能够输出各种makefile,和project 文件,指导编译器编译,对CMAKE具体的可以 ...

  2. windows下Redis编译安装

    redis是现在比较流行的noSQL,主流大型网站都用的比较多,很多同学不知道怎么安装,这里介绍在windows下面安装以及扩展,提供学习使用,实际使用环境多在Linux下. 首先到相应网站下载red ...

  3. linux下cmake编译安装、配置和卸载mysql

    WIN10下虚拟机:VMware workstation 12 PRO 安装 # 1.查看系统版本 [root@vm-xiluhua][/home/xiluhua]$ cat /etc/redhat- ...

  4. centos下cmake编译安装mysql5.7.24

    一.centos6.5推荐最小安装.自定义添加如图两个包 二.安装cmake3.0(mysql5.7要求cmake2.9以上.cmake3.1要求gcc g++4.8以上.所以选自3.0) 1.分别执 ...

  5. Linux 下编译安装OpenCV(zhuanzai)

    http://www.cnblogs.com/emouse/archive/2013/02/22/2922940.html Cmake的安装 OpenCV 2.2以后版本需要使用Cmake生成make ...

  6. 判断OpenCV是否为共享库,Windows基于CMake编译Caffe需要opencv共享库

    判断OpenCV是否为共享库,Windows基于CMake编译Caffe需要opencv共享库 TLDR 只考虑windows下opencv预编译包的情况. 对于opencv2.4.x系列,cmake ...

  7. 在Ubuntu 16.04 LTS下编译安装OpenCV 4.1.1

    目录 一 安装前的准备 二 编译并安装OpenCV 4.1.1 注:原创不易,转载请务必注明原作者和出处,感谢支持! OpenCV目前(2019-8-1)的最新版本为4.1.1.本文将介绍如何在Ubu ...

  8. linux源码编译安装OpenCV

    为了尽可能保证OpenCV的特性,使用OpenCV源码编译安装在linux上.先从安装其依赖项开始,以ubuntu 14.04.X为例讲解在Linux上源码编译安装OpenCV,其他linux版本可以 ...

  9. [转]QGis2.9在windows下的编译以及二次开发包下载

    今天心血来潮,将QGis在github上的代码更新后,又编译了一下.留意到源代码包里面的INSTALL文件有更新,于是本次编译完全基于官方的编译说明.编译过程非常顺利,除了在CMake的第一次conf ...

随机推荐

  1. uwp Button的动态效果

    你应该覆盖Button样式 <Page.Resources> <Style TargetType="Button" x:Key="CustomButto ...

  2. 怎样在Qt中建立使用动态链接库

    参考网址: https://blog.csdn.net/q496713258/article/details/6990837 qt 的学习网址: http://c.biancheng.net/view ...

  3. numpy、pandas、scipy、matplotlib、jieba、 openpyxl、pillow的安装

    cmd环境下进入python安装包里的Script文件夹 安装numpy 安装pandas 安装scipy 安装matplotlib 安装jieba(应该是之前装的库安装依赖时下载了) 安装openp ...

  4. xmake v2.5.7 发布,包依赖锁定和 Vala/Metal 语言编译支持

    xmake 是一个基于 Lua 的轻量级跨平台构建工具,使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能 ...

  5. 闭包 panic recover

    闭包=函数+外层变量的引用 recover必须搭配defer使用 defer一定要在可能引发panic的语句之前定义

  6. MVC模式职责分工及学习路上的一些感想

    在正文之前想先说说自己coding道路上的一点感想,不得不感慨一下时间过得很快,之前写过一篇关于JavaWeb_MVC模式的一篇博客,转眼之间时间已经过去了两个月,那时候还是一个刚刚接触JavaWeb ...

  7. vue之 分页封装

    npm 下载 npm i element-ui -S components 创建 Page 文件夹 创建 Page.vue 文件 vue 文件 <template>   <div c ...

  8. 超详细kafka教程来啦

    Kafka的概念和入门 Kafka是一个消息系统.由LinkedIn于2011年设计开发. Kafka是一种分布式的,基于发布/订阅的消息系统.主要设计目标如下: 以时间复杂度O(1)的方式提供消息持 ...

  9. Linux查看英伟达GPU信息

    命令: nvidia-smi 结果:

  10. Appium问题解决方案(6)- Java堆栈错误:java.lag.ClassNotFoundException:org.eclipse.swt.widets.Control

    背景 运行脚本出现 SWT folder '..\lib\location of your Java installation.' does not exist. Please set ANDROID ...