我想学OpenCV,需要一些什么样的基础
方法如下:
先去下载最新版OpenCV,网址如下:http://nchc.dl.sourceforge.net/project/opencvlibrary/opencv-win/2.4.3/OpenCV-2.4.3.exe。下载完成后解压到相应目录。本人解压到D:\Program Files\OpenCV2.4.3。
有的文章提到使用CMake把OpenCV下面的范例生成为Visual Studio的工程,此处我没有这样做。直接使用范例。这里先把OpenCV目录下面的几个重要目录做个说明:
doc目录:主要包含OpenCV的帮助文档。其中opencv2refman.pdf主要是OpenCV的各种类和函数的使用说明。
opencv_tutorials.pdf,主要是下面教学代码目录里面各个教学范例的简单讲解。
opencv_cheatsheet.pdf主要是最常用OpenCV类和函数的集合。此3个PDF文档对自学者帮助最大。
samples\cpputorial_code目录:里面包含基本教学代码。和上面的opencv_tutorials.pdf文档遥相呼应,构成一个完整的自学体系。
build目录:包含编译,调试,发布所需要的各类动态库,静态库,头文件等。因为OpenCV2.4.3好像只支持Visual Studio 2008以上版本,我在这里以Visual Studio 2008为例讲解如何让范例跑起来。
添加环境变量:此处我在path环境变量中添加如下目录:D:\Program Files\OpenCV2.4.3\build\x86\vc9\bin。记住在前面一个目录后面加分号。
在Visual Studio中包含头文件目录:见附件中的图片,已经用红色矩形框标识如何操作。
在Visual Studio中包含库文件目录:见附件中的图片,已经用红色矩形框标识如何操作。4
建立一个新建Visual Studio VC win32控制台应用工程,这里我选择带预编译头的工程,省去添加cpp文件的工作。
代码创建:这里我选择samples\cpputorial_code\ImgProc\Morphology_2.cpp文件。先添加包含目录,如下(以后所有范例均可以如下添加):#include #include 然后复制代码。
编译文件:自然少不了要包含静态库,要添加的库(debug版和release差别就是文件名后多了一个d标识是debug版)如下:
debug版:
opencv_calib3d243d.lib
opencv_contrib243d.lib
opencv_core243d.lib
opencv_features2d243d.lib
opencv_flann243d.lib
opencv_gpu243d.lib
opencv_haartraining_engined.lib
ibrelease版:
opencv_calib3d243.lib
opencv_contrib243.lib
opencv_core243.lib
opencv_features2d243.lib
opencv_flann243.lib
opencv_gpu243.lib
字符集设置:如果编译过程中出现如下错误:不能将参数 1 从“_TCHAR *”转换为“const std::string &”原因如下: 无法从“_TCHAR *”转换为“const std::string”。请字符集设置为“使用多字节字符集”。
最后指定命令后参数:方法见附件。这样就可以不用在windows命令行下输入参数了,方便调试,但是要注意,图片必须放在你所建立的工程目录下(和.cpp以及.h文件同一目录)。否则就要加上相应的路径。如果参数多于1个,请以空格分开。
支持所有参数设置完成,开始编译运行吧。如果Visual Studio无问题的话,按照以上按部就班操作,每个范例均可以正常运行。
作为计算机视觉的开源库,OpenCV强大而实用,下面分享一下我学OpenCV的经验。
刚开始是由于大学生创新项目的原因,在大二的时候就开始接触,当时我已经有了C++和Java的基础了。不过先声明一下,两种语言我都学得不怎么样,囧~既然你想学C++版的OpenCV的API,那就要掌握C++的基础知识,特别是类、继承方面的基本原理,当然要求不是很高,理解就行。我说有Java基础,不是让你学Java,而是掌握一种查API手册的习惯和能力,就是,遇到不懂的类或函数(方法),通过查手册了解。我的这种能力是从Java课上学到的,故在这里赘述。
拿到的第一本书叫《学习OpenCV(中文版)》,这本书是C语言版的,比较经典了。说实话,个人觉得对我的帮助不是很大。除了让我学会了读取图像和视频,还有知道一些图像处理的函数之外,其他倒没有什么。不过里面的原理倒是介绍的不错,不过对于初学者来说,可能效果不是那么好。因为里面涉及的东西太多,感觉吸收有压力。
上面是C语言版的,学着不方便。关于C++版的学习,经过摸索,强烈建议到OpenCV中文网 ,跟着这个教程,一步步的学,基础就可以打牢了。这个教程很好,从安装OpenCV到各个模块的学习,都有简明扼要的讲解和例子源代码(很多可以从OpenCV自带例程中找到)。有些函数如果不熟悉,可以到“中文文档”子模块 去查。当然,你可以在论坛上注册个帐号,和别人交流等等。推荐一本书《OpenCV2计算机视觉编程手册》张静,科学出版社。(opencv2主要是针对C++版的)
总的来说,学习OpenCV的时候,切忌一下几点:
有一定的C++基础,会查阅API手册;
学会安装配置开发环境;
针对各个模块学,核心模块必学(特别是矩阵处理),基础的图像处理也要学,其他结合项目学;
边学边动手,一定要敲代码,看例程;
遇到问题,查手册,上论坛,网上找资源。。。
作为计算机视觉的开源库,OpenCV强大而实用,下面分享一下我学OpenCV的经验。
刚开始是由于大学生创新项目的原因,在大二的时候就开始接触,当时我已经有了C++和Java的基础了。不过先声明一下,两种语言我都学得不怎么样,囧~既然你想学C++版的OpenCV的API,那就要掌握C++的基础知识,特别是类、继承方面的基本原理,当然要求不是很高,理解就行。我说有Java基础,不是让你学Java,而是掌握一种查API手册的习惯和能力,就是,遇到不懂的类或函数(方法),通过查手册了解。我的这种能力是从Java课上学到的,故在这里赘述。
拿到的第一本书叫《学习OpenCV(中文版)》,这本书是C语言版的,比较经典了。说实话,个人觉得对我的帮助不是很大。除了让我学会了读取图像和视频,还有知道一些图像处理的函数之外,其他倒没有什么。不过里面的原理倒是介绍的不错,不过对于初学者来说,可能效果不是那么好。因为里面涉及的东西太多,感觉吸收有压力。
上面是C语言版的,学着不方便。关于C++版的学习,经过摸索,强烈建议到OpenCV中文网站http://www.opencv.org.cn/学习OpenCV。这个网站有个“中文教程”子模块(http://www.opencv.org.cn/opencvdoc/2.3.2/html/doc/tutorials/tutorials.html),跟着这个教程,一步步的学,基础就可以打牢了。这个教程很好,从安装OpenCV到各个模块的学习,都有简明扼要的讲解和例子源代码(很多可以从OpenCV自带例程中找到)。有些函数如果不熟悉,可以到“中文文档”子模块(http://www.opencv.org.cn/opencvdoc/2.3.2/html/index.html)去查。当然,你可以在论坛上注册个帐号,和别人交流等等。推荐一本书《OpenCV2计算机视觉编程手册》张静,科学出版社。(opencv2主要是针对C++版的)
总的来说,学习OpenCV的时候,切忌一下几点:
有一定的C++基础,会查阅API手册;
学会安装配置开发环境;
针对各个模块学,核心模块必学(特别是矩阵处理),基础的图像处理也要学,其他结合项目学;
边学边动手,一定要敲代码,看例程;
遇到问题,查手册,上论坛,网上找资源。。。
好吧,只能帮你到这儿了,祝你成功~:)(P.S.夜深了,这可是我一个字一个字敲的,呜呜~)
其实c++就够了。其他可以边学边百度。最好给自己一个任务,做出什么东西然后一直朝着那个方向做。
要说别的话,数据结构也挺重要的。图像识别又不少算法。遇到还是得自己找弄清楚。数学得好些,特别是矩阵这块,对模式匹配的理解要求有帮助。当然,实在弄不懂的话只能照搬别人的算法了~基本也就这些。加油
学习OpenCV图书信息
该书由美国作者布拉德斯基撰写,于仕琪担任中文版的译者。这本著作由中国知名的清华大学出版社出版,于2009年10月正式发行。它的国际标准书号(ISBN)为9787302209935,适合16开本阅读。对于那些对计算机视觉技术感兴趣的读者来说,这本书的定价为75.00元,内容详实,非常适合初学者和进阶者深入学习OpenCV技术...
OpenCV入门(十)快速学会OpenCV 9 图像平滑处理
在尽量保留图像原有信息的情况下,过滤掉图像内部的噪声,这一过程称为对图像的平滑处理,所得的图像称为平滑图像。例如,图7-1是含有噪声的图像,在图像内存在噪声信息,我们通常会通过图像平滑处理等方式去除这些噪声信息。一幅图像在获取传输等过程中会受到各种各样的噪声干扰。图像噪声来自多方面,有...
OpenCV入门(二十)快速学会OpenCV 19 对象测量
OpenCV入门教程中,对象测量是其重要部分,涉及内容广泛,包括面积、周长、质心和边界框等。具体方法包括使用cv2.moments()计算中心矩及其高阶版本cv2.HuMoments(),结合cv2.contourArea()和cv2.arcLength()测量形状的面积和长度。多边形拟合则通过cv2.approxPolyDP()函数实现,其参数如epsilon(逼近精度)和...
如何从入门开始学习OpenCV
如何从入门开始学习OpenCV OpenCV只是个lib,它既不是软件、也不是编程语言,所以我觉得从头到尾按照教程来看一遍可能会存在学习枯燥、无的放矢的局面。最好的方法是带着问题去学,先从最简单的地方入手,比如调用OpenCV的GUI界面来调节一幅图像的灰度,再复杂些可以利用鼠标交互来实现PS的魔棒效果(分水...
学些opencv之(一)滤波函数
初学者在OpenCV中可能会对众多滤波方法感到困惑,这主要源于对滤波应用场景理解不足。本文将从实际应用和解决问题的角度,介绍几种主要的滤波方法。模糊滤波OpenCV的blur函数常用于去噪,如3x3模糊可预处理图像边缘提取和特征提取,以减少干扰和噪声。高斯模糊通过GaussianBlur,可以控制高斯方差(SigmaX和SigmaY)...
OpenCV自学笔记分享 Python与OpenCV基础入门:零起点学习计算机视觉 第1...
OpenCV自学笔记:Python与OpenCV基础入门 - 多目标模板匹配 在学习计算机视觉的第16天,我们深入探讨了多目标模板匹配这一重要技术。它旨在在图像中寻找多个与给定模板高度相似的区域,适用于目标物体在图像中可能出现多次的场景。多目标模板匹配的核心概念包括:模板图像:代表目标物体的小型样本。源图像:包含...
Opencv学习笔记(一)图像基本操作
一、图片读取 使用cv2.imread函数读取图片,参数为图片路径和可选的读取模式,模式默认为1,表示使用默认读取模式。注意,OpenCV是以bgr三通道打开图像,需要进行bgr与rgb的相互转换。二、图片保存 使用cv2.imwrite函数保存图片,参数为存储路径、图片变量和可选的保存模式。保存过程中的图像压缩会降低图像精度...
我想学OpenCV,需要一些什么样的基础
作为计算机视觉的开源库,OpenCV强大而实用,下面分享一下我学OpenCV的经验。刚开始是由于大学生创新项目的原因,在大二的时候就开始接触,当时我已经有了C++和Java的基础了。不过先声明一下,两种语言我都学得不怎么样,囧~既然你想学C++版的OpenCV的API,那就要掌握C++的基础知识,特别是类、继承方面...
只学过C语言,学OpenCV有困难吗?
所以如果没有C++的经验,用OpenCV也是没有问题的。虽然OpenCV的核心是由C++构建的,但是它对C的支持也是不错的,今天展示的案例里面,大部分接口也是C接口,用起来也不会特别困难。OpenCV面向的是专门做图像这一块的,不会用一些过于复杂C++特性,学过C,那用OpenCV不会有太大困难的。
opencv难学吗
并不难学,其实opencv只是一个库,包括很多图像处理的函数,功能比较强大而且开源,算是研究图像处理的必修的书吧,希望你有信心学好,万事开头难,不要把自己吓倒,经过一段时间学习就不难了
禄瑾多喜: 如何从入门开始学习OpenCV OpenCV只是个lib,它既不是软件、也不是编程语言,所以我觉得从头到尾按照教程来看一遍可能会存在学习枯燥、无的放矢的局面.最好的方法是带着问题去学,先从最简单的地方入手,比如调用OpenCV的GUI...
合江县13272549440: 初学OpenCV,谁能给我点有用的建议! - ?
禄瑾多喜: 其实,看你的需要吧,我 毕业设计一个月前才接触OPENCV,拿它做毕设,顺利过关.不过,坦白讲,今天为止,我仍然认为我是初学者. 如果你只是想学东西,那么,你可以边看边试试里面的那些命令,试着做1,2个题目. 如果你急着要用,那么,把前3章看一下啦,不需要全部都懂,有个大概的概念,然后,根据你需要做的东西有针对性的看,找资料,你会比较快上手. 另外最重要的一点,去试试,它的代码,而不要只是看.隔岸观火和身临其境毕竟不一样.等你开始试了,你会进一步了解,等你应用了,你又更深入了一步.总之,方法很多,看你需要,但是,程序的东西,一定要动手试的.加油!
合江县13272549440: 如何学习opencv源码 - ?
禄瑾多喜: Opencv 是一个跨平台的计算机视觉库.可以运行在多个操作系统下面.如果想学习Opencv 编程的话,那么首先需要在自己电脑的相应操作系统平台上面安装 Opencv 软件,然后购买一本相应的教材、或者是同时从网上寻找其他资源进行学习编程.
合江县13272549440: 想学opencv对电脑配置都有哪些要求 - ?
禄瑾多喜: opencv对电脑配置没有严格要求,能运行VS就可以 当然cpu处理器、硬盘速度影响编译速度而已 你可以加入驱动人生官方q群咨询下,客服会帮你解答的,无论是啥电脑问题都能知晓.
合江县13272549440: 学opencv需要什么数学知识吗 - ?
禄瑾多喜: 作为计算机视觉的开源库,OpenCV强大而实用,下面分享一下我学OpenCV的经验. 刚开始是由于大学生创新项目的原因,在大二的时候就开始接触,当时我已经有了C++和Java的基础了.不过先声明一下,两种语言我都学得不怎么样,囧~...
合江县13272549440: 关于OpenCV的学习方法问题 - ?
禄瑾多喜: 我是一个opencv beginner,用了它大概几个月.我的意见是最主要的是你需要opencv来做什么事情.如果你着重应用,比如说你希望用opencv来做图像识别,你就直接用那部分tutorial的代码.在用...
合江县13272549440: 几乎无C/C++基础的前提下,如何去学习OpenCV - ?
禄瑾多喜: opencv需要的基础并不深,C语言C++自己看一些 简单的东西,就可以使用opencv
合江县13272549440: 初学者怎么精通OPENCV啊?有什么推荐的书籍湖或者资料吗????? - ?
禄瑾多喜: OPENCV是一个处理视觉信息的库,我觉得要想学好它首先要了解它的数据结构.入门的书有很多,最经典的是于仕旗/刘瑞帧翻译的《学习opencv》.这本书有两个版本,一个是基础篇,一个是相对高级点的.还有opencv中文网站,里面有安装和常用功能的例程,想必你很需要这些.
合江县13272549440: 怎样学好opencv - ?
禄瑾多喜: 要打好C/C++基础,对计算机视觉的相关理论比较熟悉,这样学起来就会得心应手 OpenCV附带的帮助文档是最好的参考手册了(虽然比较简洁),仔细阅读会受益匪浅 看不懂的地方,就是相关理论不熟悉的地方,需要查阅计算机视觉理论方面的资料
合江县13272549440: 如何自学opencv.本人具备c与c++基础,想自学opencv图像处理编程,但是不知道从何入门,会追加分数的 - ?
禄瑾多喜: 我对OpenCV没什么了解,不过我认为你可以把SDK下载下来看看,里面一般都有说明文档,另外还有一些实例演示如何使用里面的API,另外可以看看有没有书籍作参考的.