如何从入门开始学习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\cpp\tutorial_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\cpp\tutorial_code\ImgProc\Morphology_2.cpp文件。先添加包含目录,如下(以后所有范例均可以如下添加):#include <opencv2/opencv.hpp>#include <stdio.h>然后复制代码。

    编译文件:自然少不了要包含静态库,要添加的库(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无问题的话,按照以上按部就班操作,每个范例均可以正常运行。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-04-04
OpenCV只是个lib,它既不是软件、也不是编程语言,所以我觉得从头到尾按照教程来看一遍可能会存在学习枯燥、无的放矢的局面。

最好的方法是带着问题去学,先从最简单的地方入手,比如调用OpenCV的GUI界面来调节一幅图像的灰度,再复杂些可以利用鼠标交互来实现PS的魔棒效果(分水岭算法)等等,这些网上都有很多现成的代码来学习,OpenCV 中文论坛上也有不少大牛来回答问题。

单纯的学习OpenCV的人不多,学习OpenCV只是为了更方便的编程,所以某种角度来看

OpenCV只是把锋利的快刀,用刀本身不是目的,用刀切出有型的菜才是目的。

如果没有编程语言的要求,建议从Python 2.7 +OpenCV 2.4X 入手,为解决问题而思考,有种用Matlab的畅快感。
《Learning OpenCV》是本好书,可以在入门后作为工具书查阅。本回答被提问者采纳
第2个回答  2016-04-04
打个比方 就好比要想学好英语得先学英文字母 再继续学语法时态一样 毫无疑问是先C 一般都是C精通了之后再继续深造java、C++或者其他的 所以最好还是先把C学完了 我现在也再学C 是看视频学的 我现在正在看的是夏老师的 感觉还不错 比较适合像我这样0基础的 这个比较吸引我的地方就是讲的一听就能听懂 而且很多概念都有形象的比喻 例如把变量比如成盒子 把变量赋值比喻成往盒子里放东西等等很多这样的比喻 感觉特别容易理解
第3个回答  2019-11-19
相似回答