CMake编译OpenCV
使用CMake来编译OpenCV,以匹配自己使用的VS版本。
主要有两步:
- CMake编译OpenCV源码得到OpenCV.sln工程文件。
- VS编译OpenCV.sln。
以最新的cmake-3.16.0-rc1-win64-x64、opencv-3.4.8、opencv_contrib-3.4.8为例,编译适合VS2013的x64版本。
【下载软件】解压后我都放到了D盘根目录
1、cmake-3.16.0-rc1-win64-x64.zip,解压直接可用
2、opencv-3.4.8源码文件Sources,解压即可
3、contrib库(下载opencv同版本,注意下边要点击选项卡选版本,别直接下载)
4.1、安装python(参考此链接1、2步),即便纯使用C++,也建议把python装上,深度学习必不可少。
4.2、安装numpy,打开cmd,输入 pip install numpy
【编译步骤】
1、cmake编译opencv源文件,生成OpenCV.sln。
以管理员身份运行D:\cmake-3.16.0-rc1-win64-x64cmake-gui.exe
单击一次Configure后,Search里筛选信息,带test的都不勾选,带java的都不勾选,其他参考上图红字。
留意下是否有BUILD_opencv_python3,如果没有说明此版本的opencv不支持python,如opencv4.2。
多次Configure后,打开D:\1\CMakeDownloadLog.txt,如果里边有https开头的东西,说明有文件下载失败。那么需要自己复制链接到迅雷下载。
定位CMakeDownloadLog.txt中出现copy的地方,把下载的文件放到对应的紧挨着copy的那个目录中,它会自动把文件重命名(MD5码-原名)放到相应的地方的。
如果没有出现copy,那么根据提示如D:/source/opencv-3.4.9/.cache/ippicv/1d222685246896fe089f88b8858e4b2f-ippicv_2019_win_intel64_20180723_general.zip,就把下载的ippicv文件放到它指定的目录,文件名用它指定的。
删掉D:\1\CMakeDownloadLog.txt,再次Configure,查看自动生成的CMakeDownloadLog.txt内容,没有https开头的东西,说明所有文件全部成功。单击Generate。
2、VS打开OpenCV.sln,菜单栏:生成——批生成,勾选下图四个,生成,等待完成即可。
最终编译的结果在自动生成的D:\1\install文件夹中(适用于C++)。把install文件夹中include、x64文件夹拷贝到在D盘新建的文件夹opencv中,其他文件可以统统删除。
之后参考博文一次配置永久使用vs2013配置opencv2.4.13(txt中复制粘贴即可,一次配置永久使用),注意没有build目录了,找自己对应的目录即可。
【python说明】适用于python的文件cv2.cp37-win_amd64.pyd,会自动出现在你安装的python目录中D:\Python\Python37\Lib\site-packages\cv2\python-3.7。
注意会提醒——无法打开文件“python37_d.lib”,debug都会出现此问题,无关紧要,因为成功生成了release版(cmake生成目录D:\1\lib\python3\Release,若*.pyd没有出现在你的python目录中,就自己拷贝过去)。
【实战】https://blog.csdn.net/nnnnnnnnnnnny/article/details/52182091
【可能出现的问题解决方案】
问题都出现在VS编译OpenCV.sln阶段,而且都是quirc.c、quirc.h引起的。
1、如果出现下图inline相关的错误,在解决方案资源管理器中打开quirc.h,在最顶部加入如下代码后,重新第2步。
#if defined(WIN32) && !defined(__cplusplus)
#define inline __inline
#endif
2、出现size_t(quirc.c中)有关的错误,打开quirc.c(上图箭头下方的Source Files中能找到),把size_t改成如下unsigned long long。重新第2步。
unsigned long long olddim = q->w * q->h;
unsigned long long newdim = w * h;
unsigned long long min = (olddim < newdim ? olddim : newdim);
CMake编译OpenCV的更多相关文章
- cmake编译opencv指南
目录 cmake编译opencv指南 用包管理器安装 查看opencv相关的包 执行安装 编译安装 为什么编译安装 下载源码 编译脚本 执行编译脚本.解决3rdparty下载 编译后的设定-环境变量 ...
- cmake编译opencv时指定cuda版本
之前有网友提问说,基于cmake编译时如果切换cuda版本,比如我同时装了cuda8和cuda9,opencv总是找到cuda9,我想用cuda8怎么办?实际上,手头上要配置的工程是基于opencv3 ...
- opencv第二课,使用cmake编译OpenCV,并添加opencv_contrib模块
一.下载安装cmake 想要在Windows平台下生成OpenCV的解决方案,我们需要一个名为cmake的开源软件,可以在camke的官网:http://www.cmake.org/上下载到 或者点击 ...
- ubuntu下cmake编译opencv 3.4.3源码;
在进行编译前,准备工作: 1) 到opencv官网下载源码(https://opencv.org/releases.html): 2) 安装qt(http://download.qt.io/); ...
- Cmake编译opencv下载不了ffmpeg时的解决办法
- Ubuntu系统---编译opencv程序的几种方式g++、Makefile、Cmake
Ubuntu系统---编译opencv程序的几种方式g++.Makefile.Cmake 先建立一个工程(一个文件夹),写好xxx.cpp文件,可以是多个: //----------opencv.cp ...
- OpenCV.3.4.6_VS2015&cmake编译x86版本的bin&lib
ZC:<<OpenCV3编程入门>> 的 2.2.2 中也有该内容的讲解 1.参考网址:opencv3.3.0+vs2015+cmake编译opencv x86 - wowo的 ...
- WIN7x64+VS2010+OpenCV2.4.10+cmake3.5.0重新编译OpenCV
1,参考博文 Win7x64+VS2012+OpenCV2.4.3+CMake2.8.10+TBB41重编译OpenCV [OpenCV入门教程之七] 玩转OpenCV源代码:生成OpenCV工程解决 ...
- [转]VS2015+OpenCV3.3 GPU模块和opencv_contrib模块的编译以及采用CMake编译opencv_contrib时提示“No extra modules found in folder”问题的解决方案
据官方说法,目前还不是太稳定的算法模块都在opencv_contrib里边,由于不稳定,所以不能在release版本里发行,只有在稳定以后才会放进release里边.但是这里边有很多我们经常要用的算法 ...
随机推荐
- java日期比较工具类
package com.net.util; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.ut ...
- POJ3046ANT_COUNTING
#include <iostream> #include <cstdio> #include <cstdlib> #include <cstring> ...
- windows下memcache扩展安装和搭建
### windows下memcache扩展安装和搭建 背景:在做微信公众号的开发时,token的有效期为7200秒,所以需要对token进行保存,在这选择了memcache作为缓存工具 memcac ...
- linux fork进程请谨慎多个进程/线程共享一个 socket连接,会出现多个进程响应串联的情况。
昨天组内同学在使用php父子进程模式的时候遇到了一个比较诡异的问题 简单说来就是:因为fork,父子进程共享了一个redis连接.然后父子进程在发送了各自的redis请求分别获取到了对方的响应体. 复 ...
- 学习BM算法
BM算法: 希望大家别见怪,当前博客只用于个人记录所用. [例题]Poor God Water 题意: 有肉,鱼,巧克力三种食物,有几种禁忌,对于连续的三个食物, 1.这三个食物不能都相同: 2.若三 ...
- php 处理数字为金钱格式
number_format(需要转换的数字,保留小数个数,小数点符号,每三位的分隔符) echo number_format("1000000")."<br> ...
- NVIDIA双显卡
NVIDIA双显卡 第一步:代码:sudo update-pciids #更新显卡信息非常重要,否则可能识别出错lspci -v | grep -i vga #察看显卡 我的显卡信息如下:代码:00: ...
- IOS 改变UISearchBar的背景色
之前网上提供的方法试了很多种 都不能很好的去掉背景色 ,修改背景色方法如下: searchbar.barStyle = UIBarStyleBlackTranslucent; searchbar. ...
- js中的函数提升和变量提升
变量提升和函数提升: 就是将变量声明或者函数全部代码提升到当前作用域(全局作用域或函数作用域)最开始的部分. JavaScript中函数域为最小域范围:for循环.while循环.if语句.switc ...
- KEIL仿真出现 EVALUATION MODE
原因是KEIL MDK没有破解,重新破解即可