一.简介 二.opencv中的SURF算法接口 三.特征点匹配方法 四.代码 1.特征点提取 #include "opencv2/opencv.hpp" #include <opencv2/nonfree/nonfree.hpp> #include <vector> #include<iostream> using namespace std; using namespace cv; void main() { Mat srcImg1 = imrea…
特征点又称兴趣点.关键点,它是在图像中突出且具有代表意义的一些点,通过这些点我们可以用来识别图像.进行图像配准.进行3D重建等.本文主要介绍OpenCV中几种定位与表示关键点的函数. 一.Harris角点 角点是图像中最基本的一种关键点,它是由图像中一些几何结构的关节点构成,很多都是线条之间产生的交点.Harris角点是一类比较经典的角点类型,它的基本原理是计算图像中每点与周围点变化率的平均值.    (1)   (2) 其中I(x+u,y+u)代表了点(x,y)邻域点的灰度值.通过变换可以将上…
SIFT特征点相对于ORB计算速度较慢,在没有GPU加速情况下,无法满足视觉里程计的实时性要求,或者无法运行在手机平台上,但是效果更好,精度更高.在应用时可以择优选取,了解其本质原理的动机是为了自己使用时,可以对其进行修改,针对自己的应用场景优化算法. 有足够的时间,可以去看D. Lowe的论文,理解起来更透彻. 1. 用高斯核构建尺度空间 对于构建的高斯金字塔,金字塔每层多张图像合称为一组(Octave),每组有多张(也叫层Interval)图像.通常高斯金字塔最底层为原始图像第0组,octa…
一.简介 二.OpenCV中的SIFT算法接口 #include "opencv2/opencv.hpp" #include <opencv2/nonfree/nonfree.hpp>//SIFT #include <vector> #include<iostream> using namespace std; using namespace cv; void main() { Mat srcImg1 = imread("E://00.jp…
一.特征匹配简介 二.暴力匹配 1.nth_element筛选 #include "opencv2/opencv.hpp" #include <opencv2/nonfree/nonfree.hpp>//SIFT #include <opencv2/legacy/legacy.hpp>//BFMatch暴力匹配 #include <vector> #include<iostream> using namespace std; using…
在计算机视觉研究当中,HOG算法和LBP算法算是基础算法,但是却十分重要.后期很多图像特征提取的算法都是基于HOG和LBP,所以了解和掌握HOG,是学习计算机视觉的前提和基础. HOG算法的原理很多资料都可以查到,简单来说,就是将图像分成一个cell,通过对每个cell的像素进行梯度处理,进而根据梯度方向和梯度幅度来得到cell的图像特征.随后,将每个cell的图像特征连接起来,得到一个BLock的特征,进而得到一张图片的特征.Opencv当中自带HOG算法,可以直接调用,进行图像的特征提取.但…
一.人脸检测并采集个人图像 //take_photo.cpp #include<opencv2/opencv.hpp> using namespace cv; using namespace std; void take_photo() { VideoCapture cap(); //打开摄像头 if (!cap.isOpened()) return; //加载级联检测器 CascadeClassifier cascade; cascade.load("F:/opencv3.2/Re…
一.人脸识别算法之特征脸方法(Eigenface) 1.原理介绍及数据收集 特征脸方法主要是基于PCA降维实现. 详细介绍和主要思想可以参考 http://blog.csdn.net/u010006643/article/details/46417127 上述博客的人脸数据库打不开了,大家可以去下面这个博客下载ORL人脸数据库 http://blog.csdn.net/xdzzju/article/details/50445160 下载后,ORL人脸数据库有40个人,每人10张照片. 2.流程…
一.最小外接圆 #include "opencv2/opencv.hpp" #include<iostream> using namespace std; using namespace cv; void main() { Mat srcImg = imread("E://10.png"); imshow("src", srcImg); Mat dstImg = srcImg.clone(); GaussianBlur(srcImg,…
一.简介 二.外接矩形的查找绘制 #include "opencv2/opencv.hpp" using namespace cv; void main() { //外接矩形的查找绘制 Mat srcImg =imread("E://12.jpg"); imshow("src",srcImg); Mat dstImg = srcImg.clone(); //原图备份 cvtColor(srcImg, srcImg, CV_BGR2GRAY); /…