在使用OpenCV时,在对一个函数的调用不是非常了解的情况下,通常希望查到该函数的官方声明。而假设想进一步研究OpenCV的函数,则必须深入到源码。

在VS中我们能够选中想要查看的OpenCV函数,点击右键-> 转到定义。我们能够非常清楚地了解到函数的简单声明,可是并没有给出源码。

这是由于openCV将非常多函数被增加了函数库,并被编译成了dll。所以仅仅能看到函数申明,没法看到源码。

第一个方法:在官网下载OpenCV后须要解压缩,完毕后能够找到OpenCV的解压文件夹打开,在source/modules中存放着全部函数的源代码,手动打开就可以。相比之下。下面方法更为便捷。

步骤一:我的OpenCV安装(解压)文件夹是E:/opencv/opencv。首先须要安装Cmake,能够到官网http://www.cmake.org去下载并按默认设置安装安装就可以。

步骤二:打开Cmake,在第一行“Where is the source code”后面的那个“Browse Source...”button,选择OpenCV的安装路径。我的Opencv2.0安装路径为E:/opencv/opencv/,这里须要选择source目录。因此输入E:/opencv/opencv/source,同理点击第二行的“Browse Build...”button并选择生成的源代码路径。

这里放置在C:/OpenCV
sources目录中,设定完毕后点击左下方的configure。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGl5dWVmZWlsb25n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" height="495" width="594">

步骤三:在弹出的对话框中选择第一项,并在下拉框中选择编译平台。因为本人电脑上安装的是VS2013 64位版本号。因此,就选择Visual Studio
12 2013 Win64,点击Finish。

步骤四:须要一段时间,完毕时出现下面界面:

步骤五:再次点击Configurebutton,完毕时红色部分消失,为下面状态:

步骤六:点击“Generate”button。等到最下方信息显示框显示点击“Generate done”时全部步骤完毕!至此,就生成了包括OpenCV函数源码的Visual Studioproject文件;进入project文件所在的路径C:/OpenCV
source:

能够看到opencv.slnproject了。用VS打开它,能够搜索全部函数的源代码。

相比第一种方法,显然这样的查阅函数的方法更加便捷~



OpenCV2学习笔记(十五):利用Cmake高速查找OpenCV函数源代码的更多相关文章

  1. python3.4学习笔记(十五) 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)

    python3.4学习笔记(十五) 字符串操作(string替换.删除.截取.复制.连接.比较.查找.包含.大小写转换.分割等) python print 不换行(在后面加上,end=''),prin ...

  2. (转载)西门子PLC学习笔记十五-(数据块及数据访问方式)

    一.数据块 数据块是在S7 CPU的存储器中定义的,用户可以定义多了数据块,但是CPU对数据块数量及数据总量是有限制的. 数据块与临时数据不同,当逻辑块执行结束或数据块关闭,数据块中的数据是会保留住的 ...

  3. (C/C++学习笔记) 十五. 构造数据类型

    十五. 构造数据类型 ● 构造数据类型概念 Structured data types 构造数据类型 结构体(structure), 联合体/共用体 (union), 枚举类型(enumeration ...

  4. MySQL学习笔记十五:优化(2)

    一.数据库性能评测关键指标 1.IOPS:每秒处理的IO请求次数,这跟磁盘硬件相关,DBA不能左右,但推荐使用SSD. 2.QPS:每秒查询次数,可以使用show status或mysqladmin ...

  5. Java基础学习笔记十五 集合、迭代器、泛型

    Collection 集合,集合是java中提供的一种容器,可以用来存储多个数据. 在前面的学习中,我们知道数据多了,可以使用数组存放或者使用ArrayList集合进行存放数据.那么,集合和数组既然都 ...

  6. angular学习笔记(十五)-module里的'服务'

    本篇介绍angular中的模块:module 在笔记(二)http://www.cnblogs.com/liulangmao/p/3711047.html里已经讲到过模块,这篇主要讲模块的 '服务' ...

  7. Java学习笔记十五:Java中的成员变量和局部变量

    Java中的成员变量和局部变量 一:成员变量: 成员变量在类中定义,用来描述对象将要有什么 成员变量可以被本类的方法使用,也可以被其他类的方法使用,成员变量的作用域在整个类内部都是可见的 二:局部变量 ...

  8. MYSQL进阶学习笔记十五:MySQL 的账号权限赋予!(视频序号:进阶_33,34)

    知识点十六:MySQL的账号权限赋予(33) 一.MySQL权限简介 关于mysql的权限简单的理解就是mysql允许你做你全力以内的事情,不可以越界.比如只允许你执行select操作,那么你就不能执 ...

  9. 数据结构和算法学习笔记十五:多路查找树(B树)

    一.概念 1.多路查找树(multi-way search tree):所谓多路,即是指每个节点中存储的数据可以是多个,每个节点的子节点数也可以多于两个.使用多路查找树的意义在于有效降低树的深度,从而 ...

随机推荐

  1. Java面试题之Oracle 支持哪三种事务隔离级别

    Oracle 支持三种事务隔离级别: 1.读已提交:(默认) 2.串行化: 3.只读模式

  2. AI人工客服开发 小程序智能客服 智能客服微信小程序 智能客服系统怎么做 如何设计智能客服系统

    今天我们就来给大家分享下如何做 小程序的智能客服问答系统. 首先请确保你的小程序在线客服已经开通使用,并使用代码自己对接好了,将客户的提问自动做了拦截,拦截到了你自己开发的接口上. 做好了拦截以后,我 ...

  3. 洛谷 P2916 [USACO08NOV]为母牛欢呼Cheering up the C…

    题目描述 Farmer John has grown so lazy that he no longer wants to continue maintaining the cow paths tha ...

  4. Html5学习进阶二 画布

    canvas 元素用于在网页上绘制图形. 什么是 Canvas? HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像. 画布是一个矩形区域,您可以控制其每一像素. canv ...

  5. (二十七)Linux的inode的理解

    一.inode是什么? 理解inode,要从文件储存说起. 文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector).每个扇区储存512字节(相当于0.5KB). 操作系统 ...

  6. app:compileDebugNdk,NDK

    Error:Execution failed for task ':app:compileDebugNdk'. > Error: Your project contains C++ files ...

  7. 为什么32位系统最大支持4G内存??我自己悟出来了 终于 。。。。。

    今天突然开窍了,想通了..... 以下是我的抽象想法: 32位系统 这个 多少位 指的是 硬件的 一次性发送过来的位数,一个字节 等于8位,内存的一个存储单元就是一个字节,即8位. 也可以这样来想这个 ...

  8. python笔记-冒泡排序【转载】

    本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/python/ 前言 面试的时候经常有面试官喜欢问如何进行冒泡排序?这个问题相信能难倒一 ...

  9. c++ set容器排序准则

    转载两篇博客: http://blog.csdn.net/lishuhuakai/article/details/51404214 http://blog.csdn.net/lihao21/artic ...

  10. 本地虚拟机在ubuntu系统搭建nexus服务器

    本地虚拟机在ubuntu系统上搭建nexus服务器 本地虚拟机在ubuntu系统上搭建nexus服务器所需软件: 虚拟机:VM或者Oracle VM VirtualBox 系统:ubuntu-14.0 ...