
OpenCV学习
文章平均质量分 72
OpenCV函数运用、算法原理解析、源码解析
honpey
学生关注图像处理操作系统内核CC语言
展开
-
使用g++编译OpenCV程序
源码: #include #include #include "opencv2/core/core.hpp" #include "opencv2/features2d/features2d.hpp" #include "opencv2/highgui/highgui.hpp" #include #include using namespace cv; using原创 2013-06-21 10:51:41 · 3660 阅读 · 1 评论 -
OpenCV学习:Mat类详细解析+源码剖析(四)MSize类和Mstep类
Msize类和MStep类是Mat的内部嵌套类:class CV_EXPORTS Mat{public: ...... struct CV_EXPORTS MSize { MSize(int* _p); ...... int* p; }; struct CV_EXPORTS MStep {原创 2013-06-12 20:18:25 · 3581 阅读 · 0 评论 -
OpenCV学习:Mat类详细解析+源码剖析(三)遍历矩阵中元素
本节主要介绍如何遍历Mat数组中的元素,遍历Mat中元素的相关函数,其中包括at族函数和ptr族函数,以及矩阵内存的布局,以及许多C++相关的知识点,这是整个Mat类的精髓,也注定了这将是华丽丽的一篇!你如何定位矩阵中的元素?OpenCV Tutorials中给出了三种方法遍历数组中的元素:(一)高效的经典的C运算子[ ]方法;(二)安全的C++中迭代器方法;(三)动态地址计算方法。下面简原创 2013-06-12 20:18:02 · 4743 阅读 · 1 评论 -
OpenCV学习:Mat类详细解析+源码剖析(二)构造函数
Mat类的构造函数,析构函数:Mat类的构造函数与析构函数太多了,真的太多了,这是可以理解的。矩阵是图像的基本数据结构,对于数字图像处理的人来说,矩阵是我们看待图像的一个重要角度,甚至是一个最主要的角度,因为,我们做的所有动作几乎都是在矩阵的基础之上完成的!矩阵是如此得基础,如此得任重道远,因此,矩阵类的实现自然不能怠慢。在具体应用上,有时我们直接声明一个矩阵了事,比如Mat img;有时,我原创 2013-06-12 20:17:47 · 4144 阅读 · 0 评论 -
OpenCV学习:Mat类详细解析+源码剖析(一)
Mat类是一种基础的数据结构,属于OpenCV中的C++系列函数(类),摸清Mat的脉络,有助于进行后续的图像处理工作,下面就好好说说Mat类。OpenCV中Mat类声明路径:opencv-2.4.5/modules/core/include/opencv2/core/core.hppOpenCV中Mat类实现路径:opencv-2.4.5/modules/core/include/ope原创 2013-06-12 20:17:32 · 2927 阅读 · 0 评论 -
OpenCV学习:fastAtan2函数解密
高中数学中各种正弦函数,余弦函数总是把人搞得头大,但是具体应用时你会发现,其实你只需要搞清楚一个2π空间内函数分布即可。下面分析OpenCV中fastAtan2函数是怎么处理的方向问题。fastAtan2函数在OpenCV中用户非常广,比如在SIFT描述子求取过程中需要计算特征点的方向,此时OpenCV的源码中就是使用的fastAtan2函数,fastAtan2函数原型如下:float原创 2013-06-04 17:08:53 · 8777 阅读 · 2 评论 -
Ubuntu下配置OpenCV
ubuntu版本13.04,OpenCV版本2.4.5需要准备的程序:Cmake和OpenCV源文件。我将整个过程分为以下三个步骤:1)安装Cmake;2)编译OpenCV;3)路径设置。下面详细说明三个阶段,以及每个阶段的意义。1)安装Cmake。Cmake的作用是生成makefile文件。sudo apt-get install cmake。2)编译OpenCV原创 2013-05-31 03:09:24 · 2744 阅读 · 0 评论 -
OpenCV学习:将图像转为二值图像(函数cvtColor和函数threshold)
想换一下优快云账户的头像,换成自己的真实的头像,但是又不想那么直接,干脆就把头像转换成二值图得了,因为从二值图像是推不出来原图的。这个过程需要OpenCV的两个函数,第一个函数是彩色图像转化为灰度图像:cvtColor函数;下一个函数是由灰度图转化为二值图像函数:threshold函数。用法很简单,代码如下: cvtColor(img_origin,img_gray,CV_BGR2原创 2013-05-25 11:28:24 · 14695 阅读 · 1 评论 -
OpenCV学习:CvGraph相关函数
OpenCV提供了CvGraph相关函数,借助这些函数可以实现图算法。下面介绍OpenCV中CvGraph相关函数,并基于这些函数完成图像的宽度优先遍历算法,最后附上CvGraph相关的所有函数的用法介绍。CvGraph、CvGraphVtx、CvGraphEdge结构结构如下(源码中宏以作处理):typedef struct CvGraphVtx{ int flags;原创 2013-04-12 22:36:19 · 1656 阅读 · 0 评论 -
直方图均衡化原理
直方图均衡化的作用是图像增强。有两个问题比较难懂,一是为什么要选用累积分布函数,二是为什么使用累积分布函数处理后像素值会均匀分布。第一个问题。均衡化过程中,必须要保证两个条件:①像素无论怎么映射,一定要保证原来的大小关系不变,较亮的区域,依旧是较亮的,较暗依旧暗,只是对比度增大,绝对不能明暗颠倒;②如果是八位图像,那么像素映射函数的值域应在0和255之间的,不能越界。综合以上两个条件,累积原创 2013-04-08 17:06:04 · 12473 阅读 · 8 评论 -
SIFT解析(三)生成特征描述子
以上两篇文章中检测在DOG空间中稳定的特征点,lowe已经提到这些特征点是比Harris角点等特征还要稳定的特征。下一步骤我们要考虑的就是如何去很好地描述这些DOG特征点。----------------------------------------------------------------------------------------------------------------原创 2013-05-29 11:15:40 · 11621 阅读 · 24 评论 -
SIFT解析(二)特征点位置确定
最近微博上有人发起投票那篇论文是自己最受益匪浅的论文,不少人说是lowe的这篇介绍SIFT的论文。确实,在图像特征识别领域,SIFT的出现是具有重大意义的,SIFT特征以其稳定的存在,较高的区分度推进了诸多领域的发展,比如识别和配准。上一篇文章,解析了SIFT特征提取的第一步高斯金字塔的构建,并详细分析了高斯金字塔以及差分高斯金字塔如何完成一个连续的尺度空间的构建。构建高斯金字塔不是目的,目的是如原创 2013-05-27 23:07:35 · 8691 阅读 · 11 评论 -
SIFT解析(一)建立高斯金字塔
SIFT(Scale-Invariant Feature Transform,尺度不变特征转换)在目标识别、图像配准领域具有广泛的应用,下面按照SIFT特征的算法流程对其进行简要介绍对SIFT特征做简要介绍。高斯金字塔是SIFT特征提取的第一步,之后特征空间中极值点的确定,都是基于高斯金字塔,因此SIFT特征学习的第一步是如何建立的高斯金字塔。明白几个定义:高斯金字塔 对于高斯金字塔,原创 2013-03-28 15:32:01 · 15299 阅读 · 54 评论 -
OpenCV学习:轮廓
今天学习下openCV里发现并跟踪图像轮廓的函数。主要函数是cvFindContour,道理不难理解,就是一个比较模糊的点:什么是内轮廓什么是外轮廓。外轮廓和内轮廓:连通域:cvFindContour函数输入的图像是二值化的图像,所谓的二值化是指图像矩阵中的所有非零数据都当做1或者255,即函数看待图像时会“非黑即白”。对于这幅二值化的图像,认定所有0值点构成连通域,即这块区域没有黑色区域原创 2013-02-08 13:07:58 · 6454 阅读 · 0 评论 -
VS配置openCV方法论
我想,有二分之一的人安装opencv是上网找份资料,然后按照他们列出的步骤邯郸学步般地操作。我也有这么一个时期,在那个时期,总以为编程才是最主要的工作,至于这些安装系统、配置文件什么的,都是我所鄙视的,我觉得编程才是王道,就像前苏联着重发展重工业,就像朝鲜的先军政治。但是,安装系统、配置文件这些看似琐碎的活,都是你体现你计算机功底的地方,你要弄明白这些活中蕴涵的计算机知识。说说VS安装open原创 2013-01-06 19:46:39 · 1620 阅读 · 4 评论