2.2开源的魅力:编译opencv源代码
1、下载安装CMake
要在Windows平台下生成opencv的解决方案,需要一个名为CMake的开源软件。CMake的全称是crossplatform make。它是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。它能输出各种makefile或者project文件。CMake的组态档取名为CmakeLists.txt。CMake并不直接构建出 最终的软件,而是产生标准的构建档,如Linux下的Makefile,windows下Visual C++de projects/workspace。然后再依一般的构建方式使用。
CMake在官网:http://www.cmake.org/上下载。
进入下载页面->Source distributions,可以下载到CMake的源码。在Binary distributions处可以下载到CMake的执行文件,选择对应系统,我的是Windows7 64bit
下载完成之后,直接安装,我的安装目录如下
2、使用CMake生成OpenCV源代码工程的解决方案
第一步:运行cmake-gui,如果没有生成桌面快捷方式,在安装路劲下D:\CMake_OpenCV\CMake_OpenCV_Install\bin处找到cmake-gui.exe运行
第二步:指定opencv的安装路径D:\opencv_2.4.11\sources,可以发现,在此路径下必须会有一个名为CMakeLists.txt的文件,这就是给CMake留下的配置文件。
CMake可以根据这个配置文件,通过选择不同的编译器,来生成不同的解决方案----VisualStudio的编译器对应的就是生成Visual Studio版的sln解决方案。
第三步:指定解决方案的存放路径:D:\CMake_OpenCV\CMake_OpenCV_Solve
第四步:第一次configure,路径设置好之后,单击configure按钮,进行第一次配置过程,然后会弹出如下图所示的进行编译器选择的对话框。
先选定“use default native compilers”,然后可以发现下拉列表中提供了几十种编译器供选择。因为我安装了visual studio,这里会默认选择对应版本的visual studio编译器。
我的visual studio是vs13,windows64bit,不知道是否是错的!!!???
确认无误之后,单击“finish”按钮。于是,CMake 开始第一次源代码配置过程,配置过程直到configuring done,那么第一次的源码配置就完成了。
第五步:第二次configure
再次单击configure按钮。
第六步:单击generate,成功生成项目
只需要单击generate来生成最终额解决方案了,完成之后可以去之前设定的路径下寻找解决方案了。
3、编译opencv源代码
打开刚刚生成的opencv.sln解决方案,可以看到一个庞大的工程----这是一个包含了67个项目的解决方案(对2.4.9而言),如下所示
这时在解决方案资源管理器界面,可以随意点击一个感兴趣的项目,比如opencv_core,再查看src/matrix.cpp文件的源代码,以后大家都会很熟悉的这个Mat类型。
当代码看完之后,我们可以按F5或者其他操作来启动调试,
若编译完成之后出现了类似
这样的警告,这是正常的,因为opencv的源代码工程默认将“ALL_BUILD”这个项目设为了启动项,编译成功后,会默认运行它。
而“ALL_BUILD”是一个项目生成周边的杂项,不是exe执行文件,本身不可以运行,故自然会弹出这样的错误提示。
2.2开源的魅力:编译opencv源代码的更多相关文章
- opencv第二课,使用cmake编译OpenCV,并添加opencv_contrib模块
一.下载安装cmake 想要在Windows平台下生成OpenCV的解决方案,我们需要一个名为cmake的开源软件,可以在camke的官网:http://www.cmake.org/上下载到 或者点击 ...
- WIN7x64+VS2010+OpenCV2.4.10+cmake3.5.0重新编译OpenCV
1,参考博文 Win7x64+VS2012+OpenCV2.4.3+CMake2.8.10+TBB41重编译OpenCV [OpenCV入门教程之七] 玩转OpenCV源代码:生成OpenCV工程解决 ...
- 【OpenCV入门教程之二】OPENCV3 开源之美 — 编译源代码、配置opencv_contrib
为什么要配置opencv_contrib? opencv3.0版本 功能更加模块块,一些功能模块不够完善,等足够完善在merge到主分支中,而我们图像识别中要用到的SIFT等算法被封装在xfeactu ...
- 学习 opencv---(6)玩转opencv源代码:生成opencv 工程解决方案与opencv 源码编译
在这篇中,我们探讨如何通过已安装的opencv选择不同的编译器类型,生成高度还原的OpenCV开发时的解决方案工程文件,欣赏OpenCV新版本中总计 六十六多万行的精妙源代码.我们可以对其源代码进行再 ...
- CSDN开源夏令营 基于Compiz的switcher插件设计与实现之编译compiz源代码
在開始介绍之前先吐个嘈:上周我们暑期ACM集训開始了.平均下来基本上是一天一赛.有时还不止.又是多校联赛,又是CodeForces,又是TopCoder.又是BestCoder,又是AcDream.还 ...
- vs2019编译opencv
序 微软家的宇宙第一ide:visual studio已经更新到了2019版,芒果也更新尝鲜了一遍,体验还不错,建议更新尝尝鲜.芒果顺便使用vs2019编译了一遍opencv,编译过程也非常顺利,以下 ...
- 编译OpenCV文档
概述 使用OpenCV的过程中经常查看文档,每次都去官网查看,不过国内访问速度很慢,有一份本地的文档就好了.本文列出了在Linux(Fedora)系统上从OpenCV源码编译出documentatio ...
- win10 + VS2010 + OpenCV2.4.10重编译OpenCV开发环境搭建
win10 + VS2010 + OpenCV2.4.10重编译OpenCV开发环境搭建 重编译的优点:能够调试的时候看OpenCV的源码. 重编译要得到的东西:Debug版本号和Release版本号 ...
- Ubuntu 16.04下为Android编译OpenCV 3.2.0 Manager
http://johnhany.net/2016/07/build-opencv-manager-for-android-on-ubuntu/ 最近想在Android上尝试一下SIFT和SURF匹配算 ...
随机推荐
- LeetCode Degree of an Array
原题链接在这里:https://leetcode.com/problems/degree-of-an-array/description/ 题目: Given a non-empty array of ...
- Vue.js devtool插件下载安装及后续问题解决
在中国,你是无法使用谷歌应用商店,所以你下载插件,要使用一些别的手段,一种是下载源码编译,另一种是通过第三方网站.第一种不适合小白,所以现在介绍第二组. 下载插件网站 国外网站:https://www ...
- ASP.NET 2.0缓存
MSDN上缓存概述: http://msdn2.microsoft.com/zh-cn/library/726btaeh(VS.80).aspx 一.页输出缓存 1.设置 ASP.NET 页缓存的两种 ...
- Oracle中exp,imp(导入导出)数据迁移注意事项
这几天做开发库schema备份,出现些问题,记录一下.一,exp时,os语言环境和数据库不同时会自动发生转换. 如果操作系统的字符集小于数据库字符集,就可能出现乱码现象.imp时,同理,也是有可能 ...
- Oracle查询多边形对象SDO_GEOMETRY并转换为java对象举例
最近实现了一个判断点是否与多边形交互的功能,这里的点是一个经纬度,多边形是一个区域,包含多个经纬度,最后看下这个点是否在这个区域内.就好比你打开百度地图,然后看你自己的位置(点)是不是在某个小区(多边 ...
- 学习HTML5之路
Web 技术大致的时间轴 1991 HTML 1994 HTML 2 1996 CSS 1+JavaScript 1997HTML 4 1998 CSS2 2000 XHTML 1 2002 使用DI ...
- linux 目标文件 bss,data,text,rodata,堆,栈***
linux目标文件 一个简单的程序被编译成目标文件后的结构如下: 从图可以看出,已初始化的全局变量和局部静态变量保存在 .data段中,未初始化的全局变量和未初始化的局部静态变量保存在 .bss段中. ...
- java冒泡排序算法例子
总结:运行显示数组下标越界说明,数组长度a.length.表示数组的长度,但索引值是要减一的.勿忘 package com.c2; //冒泡排序 //从小到大的顺序排列 public class MA ...
- 多线程设计模式(三):Master-Worker模式
Master-Worker模式是常用的并行模式之一,它的核心思想是,系统有两个进程协作工作:Master进程,负责接收和分配任务:Worker进程,负责处理子任务.当Worker进程将子任务处理完成后 ...
- Spring MVC启动时初始化的几个常用方法
Spring-MVC的应用中,要实现类似的功能,主要是通过实现下面这些接口(任选一,至少一个即可) 一.ApplicationContextAware接口 +? 1 2 3 4 5 6 7 8 9 p ...