本科用过opencv2..3.1版本,当时按照 http://wiki.opencv.org.cn/index.php/首页 上面的步骤安装的,而且使用的是IplImage和CvMat等C接口的的API。处理了个镇江市交通局的视频中的车辆位置提取的项目(跟着导师干),当时觉得很重要,恩 也就仅限很重要。

现在重新审视OpenCV觉得很好的东西,实在不行都能够自己没事写程序玩。

正文

采用Opencv2.4.10版本。因为最新的OpenCV是3.0的虽然有了alpha版本和beta版本,但是觉得还是不太稳定,过几个月在用好了。

        本人安装环境win8.1 企业版+VS2013+opencv2.4.10:直接使用build和使用cmake方法都尝试过。

         其实opencv中就两个文件夹 一个build 一个sources,第一个是人家opencv小组帮咱预编译了下,第二个是人家原本的部分,所以偷懒的使用第一个。

参考自 http://www.cnblogs.com/freedomshe/archive/2012/04/25/2470540.html

所以安装部分就不重复造轮子了。关键的几点:在选择是x64 还是x86,这个虽然是看系统的,但是还是取决于编译器的编译版本。虽然在64位上运行32位无压力,但是相反就有问题。所以如果 虽然是64位系统,但是因为vs编译器默认就是win32位下编译的,对于初学者还是只添加32位的lib,dll什么的就好,不然 万一搜索到所需要的dll(比如把搜索路径中64的排在86的前面),发现不是所需要的版本,那么编译器就报错。

不过按照上面推荐的博客中的方法在安装完之后会有几个出问题的地方。

FAQ:1.对于只使用build连接的方法来说,使用例子程序的时候会出现imread的时候出错,通过断点发现imread读到了图像的大小但是其中的data却是没东西,这个被归结为库连接出现了问题。解决方法有:

(1)、按照推荐的安装会发现在debug的时候有可能会编译器去读取release版本的lib,问题参考:

http://www.cnblogs.com/eyeszjwang/articles/2418354.html “也就是在Debug模式下应该选择带'd'的lib,在Release模式下就选择不带'd'的lib。而实际我们在配置OpenCV环境的时候往往图方便将Debug和Release的目录都一起加了进去,再修改起来也比较麻烦。所以这时候最简单的办法就是在程序的开始加上:#pragma comment(lib,"opencv_highgui231d.lib")” 也就是想调用哪个版本的lib就使用哪个版本的就好。
个人测试结果:无效

              (2)、删除推荐博客中将所有的lib都放在一起的操作,只添加debug的lib。个人测试结果:无效

             (3)、曲折的方法使用cvLoadImage装载图片,使用cvReleaseImage释放图片,但是这种是在cpp中使用c接口,个人接受不了。

             (4)、参考http://bbs.csdn.net/topics/350004415 中的加载什么debug的dll。个人测试:无效





2:采用cmake的方法自己编译opencv/中的sources文件夹解决1中的问题。 参考自

http://www.cnblogs.com/freedomshe/archive/2013/01/11/win7_vs2012_opencv_rebuild.html

这样可以调试的时候自己断点进入人家opencv的源码级别部分。不过也有问题见下面的3。

在下载cmake的时候发现这个cmake只有32位的版本(当时还说怎么没64位的呢,不过是多想了)在使用cmake进行编译的时候需要添加一个新的文件夹路径(一定不要中文路径)其实这里发现原来的build就是opencv小组帮咱预编译了的,而且这里按照推荐的博客中的方法 发现生成了6g多的文件,通过简单的清理解决方案的方法的确剩到最后200m(可是人家说会剩下3g的,我了个去的,也许就是这一步导致下面的问题3,如果硬盘够大,那么到这部就终止就行)





3:通过2中的推荐的方法成功的cmake了,然后按照里面的方法加了新的dll和lib等路径和并在编译器中只添加了debug的lib(暂时用不到release版本)。当屁颠屁颠的调试opencv源码级别的代码时发现显示某些pdb模块不存在。这时候两个方法:





(1)打开微软符号服务器下载所需符号,参考:http://www.tuicool.com/articles/R3EBF3M。不过这个只是下载微软的不是opencv的。

(2).其实细心的人就会发现在 \opencv\build\x86\vc12\staticlib,下面就有附带的pdb,只要把这个文件夹路径加到系统的环境变量就行(我这是x86的版本,而且这里的路径就是解压opencv中的两个文件夹中的build的文件夹)。 这个方法不行,因为对应编译的dll要对应的pdb,想要真正进入源码,记得执行清理解决方案那个步骤的时候不要把pdb清理了。





资料:1、《OpenCV教程——基础篇》和《学习OPencv》   

 2、《mastering opencv with practical computer vision》

3、《opencv 2 computer vision application programming cookbook》

4、《opencv2计算机视觉编程手册》

5、《基于OpenCV的计算机视觉技术实现》

6、官方文档

相比较来说,1的是基于c接口的,显得老旧了些,从官方文档就能看出其中的c的不足,推荐使用cpp接口的(作者是大神,这就不评论了,只是书的内容不适合我,个人喜欢cpp)。

    2和3是老外12年和13年出的书,还是很好的。不过觉得比较适合有个基础的底子的时候,其中还有介绍在ipad和android上的编程,很是不错。

   4.这一两年刚出来的,评价很不错,而且网上没有电子版,只有去买纸质版。5是08年出版的,略老了。

学习:其实觉得最好的入门学习版本我觉得应该是官方文档。特别是看下面论坛部分中2的网站,其中还有部分的中文翻译版本。官方文档在下载opencv的时候就出现在里面了,2.4.10的是在opencv\build\doc 部分。因为不同版本 它的位置会变,但是一定自带了。其中有《opencv_tutorials》可以入门。还有《opencv2refman》可以查api。在对照着前面的入门和下面论坛2中的部分翻译,一起学习。

在opencv\sources\samples中有不同平台、接口的例子代码。粗略了看了下cpp的例子最多。

×××说到opencv的真正源码,在opencv\sources\modules\core\src里面,这里中那个core就是对应不同的文件夹,在每个文件夹的src中就是源代码了。暂时说有超过20w行 一共。

论坛:1、http://wiki.opencv.org.cn/index.php/首页 是老站

2、http://www.opencv.org.cn/forum.php?mod=forumdisplay&fid=1&page=1新站

3、http://opencv.org/ 是opencv主站,源代码放在sourceforge开源网站上。

4、http://52coding.com/opencv 这个还是不错的,不过没怎么关注,但是进去了,一定会有收获。下一步就打算进去看看。

opencv1-安装及资料的更多相关文章

  1. 一、tars简单介绍 二、tars 安装部署资料准备

    1.github地址https://github.com/Tencent/Tars/ 2.tars是RPC开发框架,目前支持c++,java,nodejs,php 3.tars 在腾讯内部已经使用了快 ...

  2. Altium Designer入门学习笔记1.软件安装与资料收集

    一.软件安装 微信:http://url.cn/5Eudzt9 关注微信公众号"软件安装管家",点击"软件目录",弹出"软件目录",点击进入 ...

  3. Asp.netCore之安装centos7 资料收集

    虚拟机的安装和centos的安装看博友的文章:https://www.cnblogs.com/zhaopei/p/netcore.html ifconfig 在centons中用终端写命令比较费劲,可 ...

  4. android 静默安装 卸载 资料汇总

    1. android + eclipse + 后台静默安装(一看就会) 2. 适用于android1.5以下版本apk静默安装 3. error: INSTALL_FAILED_SHARED_USER ...

  5. Ant, JUnit以及Sonar的安装+入门资料

    Ant 感觉是个和Make/Grunt类似的东东,build一个项目用的.安装很容易,跟装JDK类似,就是解压->设环境变量->没了.注意装之前要先确认Java装好了(有点废话). 下载地 ...

  6. [树莓派(raspberry pi)] 01、在linux环境下给树莓派安装系统及入门各种资料

    1.预准备 进入帮助页面https://www.raspberrypi.org/help/,可以直接看到GET START WITH PASPBERRY PI,点击进入: 接下来会引导你检查配件是否齐 ...

  7. 我的MySQL5.6免安装版配置过程

    最近打算学习MySQL,第一步就是安装.下载到一个面安装版.解压到我的D盘的mysql目录. 弄了一个最简单的配置文件.目录中只有一个my-default.ini,基本没啥用.在网上弄了一个my.in ...

  8. 在VS2012下不安装VS2010编译VS2010的工程

    虽然一路追随这VISUAL SUTDIO在编程,但是断档的情况还是有的,最近一次硬盘问题使得安装了所有的VS2003-VS2012的机器硬盘挂了,无奈只能够安装了,不过觉得没啥用了,就安装一个VS20 ...

  9. ubuntu下安装JDK详解

    码农博客 即将到期,现将博客中部分文章转载到博客园.本文发表与2012年,转载时略有删减 安装JDK其实只要搞定两个问题,安装目录以及配置文件.如果你只想要快速安装JDK,请略过此部分直接看安装篇. ...

  10. Joomla安装图文教程 (送 Joomla 中文语言包)

    1.首先 下载 Joomla  源程序 首页: http://www.joomla.org/download.html 下载: download 2.为论坛 创建数据库.进入cPanel面板,选择my ...

随机推荐

  1. Git中文版教程

    1. 起步 1.1 关于版本控制 1.2 Git 简史 1.3 Git 基础 1.4 命令行 1.5 安装 Git 1.6 初次运行 Git 前的配置 1.7 获取帮助 1.8 总结 2. Git 基 ...

  2. js 浮点运算出现的精度丢失问题

    var myf='6.202555'; myf=Number(myf).toFixed(2);//使用方法 Number.prototype.toFixed = function(scale) { v ...

  3. my_strlen()

    int my_strlen(const char* S){ int i=0; while('\0'!=*(S+i)){ i++; } return i; }

  4. hash查找

    这里使用了编号代替真实的数据,只用来表示算法 #ifndef HASH_DATA_T #define HASH_DATA_T int #endif //HASH_DATA_T typedef stru ...

  5. JavaScript目录菜单滚动反显组件的实现

    JavaScript目录菜单滚动反显组件,有以下两个特点 每个导航菜单项(nav)对应页面一个内容区域(content) 滚动页面到特定内容区域(content)时,对应的菜单会自动切换,一般会添加一 ...

  6. Kali Linux 秘籍/Web渗透秘籍/无线渗透入门

    Kali Linux 秘籍 原书:Kali Linux Cookbook 译者:飞龙 在线阅读 PDF格式 EPUB格式 MOBI格式 Github Git@OSC 目录: 第一章 安装和启动Kali ...

  7. 大话设计模式C++版——观察者模式

    观察者模式是一种类似于消息分发的模式,用于一个任务需要被多个对象监听的场景,或者成员对象需要反向通知类对象的情况,是一种很有用的设计模式.    这里以大话设计模式中的例子为例,办公室员工A.B.C在 ...

  8. SQL Server With 递归 日期 循环

    要实现的效果:查询从Date From 到 To 之间的 所有日期: 示例代码如下: DECLARE @DATE_FROM DATETIME = N'2016-05-16';--N'2015-05-1 ...

  9. 高级c++头文件bits/stdc++.h

    用这种方法声明头文件只需两行代码 #include<bits/stdc++.h> using namespace std; 这个头文件包含以下等等C++中包含的所有头文件: #includ ...

  10. Struts2 Action中动态方法调用、通配符的使用

    一.Struts2执行过程图: 二.struts2配置文件的加载顺序 struts-default.xml---struts-plugin.xml---struts.xml 具体步骤: 三.Actio ...