学习OpenCV——Surf简化版】的更多相关文章

之前写过一遍关于学习surf算法的blog:http://blog.csdn.net/sangni007/article/details/7482960 但是代码比较麻烦,而且其中还涉及到flann算法(其中的Random KDTree+KNN),虽然能看明白,但是比较费劲,今天在文档中找到一个简化版本: 1.SurfFeatureDetector detector( minHessian );构造surf检测器: detector.detect( img_1, keypoints_1 ); d…
根据前面surf简化版的结构,重新把ORB检测的代码给简化以下,发现虽然速度一样,确实能省好多行代码,关键是有 BruteForceMatcher<HammingLUT>matcher的帮忙,直接省的写了一个函数: NB类型:class gpu::BruteForceMatcher_GPU 再加上findHomography,之后perspectiveTransform就可以location,但是这样速度很慢: 于是改动一下,求matches的keypoints的x与y坐标和的平均值,基本上就…
Surf(Speed Up Robust Feature) Surf算法的原理                                                                            1.构建Hessian矩阵构造高斯金字塔尺度空间 其实surf构造的金字塔图像与sift有很大不同,就是因为这些不同才加快了其检测的速度.Sift采用的是DOG图像,而surf采用的是Hessian矩阵行列式近似值图像.Hessian矩阵是Surf算法的核心,为了方便运…
依旧转载自作者:tornadomeet 出处:http://www.cnblogs.com/tornadomeet 特征点检测学习_2(surf算法) 在上篇博客特征点检测学习_1(sift算法) 中简单介绍了经典的sift算法,sift算法比较稳定,检测到的特征点也比较多,其最大的确定是计算复杂度较高.后面有不少学者对其进行了改进,其中比较出名的就是本文要介绍的surf算法,surf的中文意思为快速鲁棒特征.本文不是专门介绍surf所有理论(最好的理论是作者的论文)的,只是对surf算法进行了…
先看一下<学习opencv> 找几个demo 学会相机标定 我做的是单目相机的标定.…
2015-11-11 ----------------------------------------------------------------------------------- 其实,写博客是很消耗时间的,尤其是新手玩家.但凡事不妨一试,再说它也可以反过来倒逼 我坚持学习这个领域的知识,也不失为自我暗示的好方法. 鉴于过往的学习体验,往往是零零碎碎地接收一堆杂乱知识,不能很好地消化,仿若段誉短时 间吸收以大众人的内力,反倒自食其害.苦了现在还需腾出大量时间整理.也因有了这么一遭 领悟…
假设有10个三维的点,使用数组存放它们有四种常见的形式: ①一个二维数组,数组的类型是CV32FC1,有n行,3列(n×3) ②类似①,也可以用一个3行n列(3×n)的二维数组 ③④用一个n行1列(n×1)的数组或者1行n列(1×n)的数组,数组的类型是CV32FC3 四种形式的内存布局如下图: <学习OpenCV>中给出的计算给定点的公式如下: 说明: 其中row col channel分别表示行号 列号 和通道号: 这些都已从0开始计算,具体如下: 通道号channel=所在的维数(X或Y…
人脑将视觉信号划分入很多个通道,将各种不同的信息输入你的大脑.你的大脑有一个关注系统,会根据任务识别出图像的重要部分,并做重点分析,而其他部分则分析得较少 .在人类视觉流中存在大量的反馈,但是目前我们对之了解甚少.肌肉控制的传感器以及其他所有传感器的输入信息之间存在广泛的关联,这使得大脑可以依赖从出生以来所学到的信息.大脑中的反馈在信息处理的各个阶段都存在,在传感器硬件(眼睛)中也存在.在眼睛中通过反馈来调节通过瞳孔的进光量,以及调节视网膜表面上的接收单元. 摘自:<学习OpenCV(中文版)>…
代码: #include <stdio.h> #include <opencv/highgui.h> #include <opencv/cv.h> #include <opencv_libs.h> /* *<学习OpenCV>第五章第二题 * 完成时间:21:43 10/13 星期日 2013 * 作者:qdsclove@163.com */ /* Image Size */ #define IMG_SIZE 100 /* * Window Ti…
这道题是载入一幅带有有趣纹理的图像并用不同的模板(窗口,核)大小做高斯模糊(高斯平滑),然后比较用5*5大小的窗口平滑图像两次和用11*11大小的窗口平滑图像一次是否接近相同. 先说下我的做法,a部分我将每个不同的窗口大小模糊化后的图像生成后,还计算了每个模糊化后的图像与原始图像间的MSE值与PSNR值.(参见:http://zh.wikipedia.org/wiki/%E5%B3%B0%E5%80%BC%E4%BF%A1%E5%99%AA%E6%AF%94) b部分我计算了两次5*5窗口大小的…
这道题是利用OpenCV例子程序里自带的人脸检测程序,做点图像的复制操作以及alpha融合. 说明:人脸检测的程序我参照了网上现有的例子程序,没有用我用的OpenCV版本(2.4.5)的facedetect.c,人脸检测部分是一个月前写的程序,这次做了点改动,以前的部分注释了起来. 代码: #include <opencv/cv.h> #include <opencv/highgui.h> #include <opencv_libs.h> #include <st…
#include <highgui.h> #include <cv.h> #include "opencv_libs.h" /* *<学习OpenCV>第四章第三题b * 完成时间:1:36 3/31 星期日 2013 */ /* 矩形框 */ CvRect rect; bool draw = false; // 标记是否在画 IplImage* img; IplImage * temp; IplImage * original; bool draw…
#include <highgui.h> #include <cv.h> #include "opencv_libs.h" #pragma comment (lib,"opencv_calib3d231d.lib") #pragma comment (lib,"opencv_contrib231d.lib") #pragma comment (lib,"opencv_core231d.lib") #pr…
#include <highgui.h> #include <cv.h> #pragma comment (lib,"opencv_calib3d231d.lib") #pragma comment (lib,"opencv_contrib231d.lib") #pragma comment (lib,"opencv_core231d.lib") #pragma comment (lib,"opencv_feat…
#include <highgui.h> #include <cv.h> #pragma comment (lib,"opencv_calib3d231d.lib") #pragma comment (lib,"opencv_contrib231d.lib") #pragma comment (lib,"opencv_core231d.lib") #pragma comment (lib,"opencv_feat…
#include <highgui.h> #include <cv.h> #pragma comment (lib,"opencv_calib3d231d.lib") #pragma comment (lib,"opencv_contrib231d.lib") #pragma comment (lib,"opencv_core231d.lib") #pragma comment (lib,"opencv_feat…
题外话:一直是打算把这本书的全部课后编程题写完的,中间断了几个月,一直忙于其他事.现在开始补上. 这道题我不清楚我理解的题意是不是正确的,这道题可以练习用OpenCV实现透视变换(可以用于矫正在3维环境下的图像失真),b&c部分则是实现图像放大缩小插值,旋转图像.所有的功能都和键盘事件处理联系起来,纯OpenCV实现,和OS无关.不过,在处理SHIFT键时,我取得是其在键盘上对应字符的ASCII码,好像OpenCV对键盘事件的支持不如对鼠标事件的支持.所以SHIFT键+小键盘上的数字键是不行的.…
学习opencv中文版教程——第二章 所有案例,跑起来~~~然而并没有都跑起来...我只把我能跑的都尽量跑了,毕竟看书还是很生硬,能运行能出结果,才比较好. 越着急,心越慌,越是着急,越要慢,越是陌生,越不能盲进.否则更容易走错路. 看了一些东西发现都挺坑的,然后看了看书,发现书上写的也...所以就把看书笔记,和跑动例程都来做一个整理. 关于如何配置,是重中之重 所以配置写在了这里:http://www.cnblogs.com/letben/p/5278595.html 然后是看书又看回到了这本…
前言: 人脸检測与识别一直是计算机视觉领域一大热门研究方向,并且也从安全监控等工业级的应用扩展到了手机移动端的app,总之随着人脸识别技术获得突破,其应用前景和市场价值都是不可估量的,眼下在学习openCV,自然不能放过这个领域,于是略微了解了下openCV下人脸检測的一些原理,为之后的人脸识别等研究做个小小的铺垫. 原理: 人脸检測属于目标检測(object detection) 的一部分,主要涉及两个方面 先对要检測的目标对象进行概率统计,从而知道待检測对象的一些特征,建立起目标检測模型.…
考试终于完了,现在终于有时间可以继续学习这个了.写这篇博客主要是因为以前一直搞不清楚图像数据到底是怎么存储的,以及这个step到底是什么,后来查了一下才知道原来step就是数据行的长度.. #include "stdafx.h" #include <highgui.h> #include <math.h> #include <cv.h> using namespace std; int main() { IplImage* sourceImage;…
图像阈值化的基本思想是,给定一个数组和一个阈值,然后根据数组中每个元素是低于还是高于阈值而进行一些处理. cvThreshold()函数如下: double cvThreshold( CvArr* src, CvArr* dst, double threshold, double max_value, int threshold_type ) cvShold函数只能处理8位或者浮点灰度图像,目标图像必须与源图像一致,或者为8为图像 . 实现阈值化的代码如下: #include "stdafx.h…
前言: 人脸检測与识别一直是计算机视觉领域一大热门研究方向,并且也从安全监控等工业级的应用扩展到了手机移动端的app.总之随着人脸识别技术获得突破,其应用前景和市场价值都是不可估量的,眼下在学习openCV,自然不能放过这个领域.于是略微了解了下openCV下人脸检測的一些原理.为之后的人脸识别等研究做个小小的铺垫. 原理: 人脸检測属于目标检測(object detection) 的一部分,主要涉及两个方面 先对要检測的目标对象进行概率统计,从而知道待检測对象的一些特征,建立起目标检測模型.…
http://www.cnblogs.com/tiandsp/archive/2013/04/20/3031862.html [学习opencv]高斯.中值.均值.双边滤波 四种经典滤波算法,在opencv文档中都能找到的,熟悉一下调用规范. #include "cv.h" #include "highgui.h" #include <iostream> using namespace std; using namespace cv; int main(…
配置环境 操作系统 Ubuntu 12.04 OpenCV版本 opencv-1.0.0 学习书籍 <学习OpenCV> Liunx软件安装方法主要有3种: 1.编译安装,也就是通过编译源代码来安装,需要配置编译源代码的环境来编译源代码 2.apt-get/yum 软件源安装,通过网络的软件源来进行安装,会自动下载相关软件源 3.deb/rpm 安装包来安装,可以通过下载安装包来进行离线安装,有时会需要下载相关软件包 Ubuntu下OpenCV的apt-get安装方法 1.apt-get up…
使用 OpenCV 和 Python 对实时视频流进行深度学习目标检测是非常简单的,我们只需要组合一些合适的代码,接入实时视频,随后加入原有的目标检测功能. 在本文中我们将学习如何扩展原有的目标检测项目,使用深度学习和 OpenCV 将应用范围扩展到实时视频流和视频文件中.这个任务会通过 VideoStream 类来完成. 深度学习目标检测教程:http://www.pyimagesearch.com/2017/09/11/object-detection-with-deep-learning-…
<模式识别中文版(希)西奥多里蒂斯> <学习OpenCV(中文版)> 矩阵计算 英文版 第四版 Matrix Computations OpenCV 3.x with Python By Example(2nd) 扫码时备注或说明中留下邮箱付款后如未回复请至https://shop135452397.taobao.com/联系店主…
学习OpenCV——SVM 学习SVM,首先通过http://zh.wikipedia.org/wiki/SVM, 再通过博客http://blog.csdn.net/yang_xian521/article/details/6969904 OpenCV开发SVM算法是基于LibSVM软件包开发的,LibSVM是台湾大学林智仁(Lin Chih-Jen)等开发设计的一个简单.易于使用和快速有效的SVM模式识别与回归的软件包.用opencv使用SVM算法的大概流程是 1)设置训练样本集 需要两组数…
前言 接着上篇<IOS7下的人脸检測>,我们顺藤摸瓜的学习怎样在IOS7下用openCV的进行人脸识别,实际上非常easy,因为人脸检測部分已经完毕,剩下的无非调用openCV的方法对採集到的人脸样本进行训练,终于得到一个能够预測人脸的模型.可是当中的原理可谓是博大精深,因为快临最近末考试了,没时间去琢磨当中详细的细节,这次就先写个大概的demo,下次更新文章就得到6月20号之后了. 原理: 从OpenCV2.4之后,openCV增加了新的类FaceRecognizer,我们能够使用它便捷地进…
在<学习OpenCV>这本书中,很多示例代码都用到了命令行参数.作为新手,之前总是很困扰,不知道怎么用.偶然的机会终于略知一二了. 在Visual Studio中,我们可以自行设置命令行参数. 如在这个示例程序中,我们想把图像存入argv[1]. 方法如下: 依次点击,项目.属性.配置属性.调试.命令参数.出现下面的界面: 然后进行编辑,即输入图像路径.如:E:\Lena.jpg.(如果想加入多个命令行参数,则用空格隔开.如:E:\Lena.jpg E:\test.avi) 到这一步,参数设置…
    老板让让做一个东东.输入端要用到opencv顺便就来学习一下.买了本书<学习opencv>翻来一看,opencv1.0,去官网上一看.opencv2.49,瞬间有种蛋碎的赶脚.看着第二章介绍一个头文件,在opencv2.49以下招了半天都没找到...泪奔~~     只是看到一些论坛上说.这本书里还是讲了一些实用的算法的,所以还是决心细致读一读,里面的測试程序基本是亲手输入执行成功的,非常多样例我自也用不同的方法实现了一下,毕竟入门级新手.望各位老鸟勿喷.还请各位大手多多指点.    …