资源简介
Hausdorff距离匹配代码,实现了CANNY边缘特征点、HARRIS特征点、SIFT特征点、SURF特征点的Hausdorff距离匹配
代码片段和文件信息
/******************************************
* Copyright (C) 2015 HolaMirai(HolaMirai@163.com)
* All rights reserved.
*
* 文件名:CFeatures.cpp
* 摘要:图像前置处理,用于获取特征点
* 当前版本:V2.02015年9月14日,HolaMirai完成四种特征点获取方法
* 历史记录:V1.02015年9月13日,HolaMirai创建该文件
******************************************/
#include “CFeatures.h“
#include “highgui.h“
#include
using namespace cv;
/***********************************************/
/*
* 函数名称:CFeatures
* 函数功能:CFeatures类构造函数
* 函数入口:
* 输入参数: 需要获取的特征点的特征点类型,值为enum feature_type其中一个
* 输出参数:无
* 返 回 值:
* 其它说明:
*/
CFeatures::CFeatures(int feature_type)
{
m_type = feature_type;
initModule_nonfree();//if use SIFT or SURF
}
/*
* 函数名称:~CFeatures
* 函数功能:CFeatures类析构函数
* 函数入口:
* 输入参数:
* 输出参数:
* 返 回 值:
* 其它说明:
*/
CFeatures::~CFeatures()
{
}
/*
* 函数名称:getFeatures
* 函数功能:获取特征点
* 函数入口:
* 输入参数: 待搜索图像的灰度图 grayImg 指针 接受特征点的灰度图像指针 featuresImg featuresImg与 grayImg尺寸相同
* 输出参数:特征点的灰度图像 featuresImg
* 返 回 值:
* 其它说明:
*/
void CFeatures::getFeatures(IplImage *grayImg IplImage *featuresImg)
{
switch (m_type)
{
case FEATURE_CANNY:
{
assert(grayImg->width == featuresImg->width &&
grayImg->height == featuresImg->height &&
grayImg->nChannels == grayImg->nChannels);
cvCanny(grayImgfeaturesImg50150);
break;
}
case FEATURE_HARRIS:
{
Ptr detector = FeatureDetector::create( “HARRIS“ ); //特征点寻找
detector->detect(grayImg m_vecPoints);
vecPointsToImage(featuresImg);
break;
}
case FEATURE_SIFT:
{
Ptr detector = FeatureDetector::create( “SIFT“ ); //特征点寻找
detector->detect(grayImg m_vecPoints);
vecPointsToImage(featuresImg);
break;
}
case FEATURE_SURF:
{
Ptr detector = FeatureDetector::create( “SURF“ ); //特征点寻找
detector->detect(grayImg m_vecPoints);
vecPointsToImage(featuresImg);
break;
}
default:
break;
}
} /*getFeatures()*/
/*
* 函数名称:vecPointsToImage
* 函数功能:将vector类型的特征点变换成 IplImage 图像类型
* 函数入口:
* 输入参数: 特征点向量m_vecPoints 接受特征点的灰度图像指针 featuresImg
* 输出参数:特征点的灰度图像 featuresImg
* 返 回 值:
* 其它说明:
*/
void CFeatures::vecPointsToImage(IplImage *featuresImg)
{
vector::iterator it;
vector::iterator end_it = m_vecPoints.end();
cvZero(featuresImg);
int wh;
uchar *ptr;
for (it = m_vecPoints.begin(); it != end_it; it++)
{
w= (int)it->pt.x;
h = (int)it->pt.y;
ptr = (uchar *)(featuresImg->imageData + h*featuresImg->widthStep + w);
// 特征点置255,其他置0
*ptr = 255;
}
ptr = NULL;
}/*vecPointsToImage()*/
/*
* 函数名称:drawFeatures
* 函数功能:画出特征点
* 函数入口:
* 输入参数: 显示窗口 name 在哪副图像上画出特征点的图像指针 img
* 输出参数:
* 返 回 值:void
* 其它说明:画出的是最近一次处理的图片的特征点
*/
void CFeatures::drawFeatures(const char *name IplImage *img)
{
IplImage *m_imgShow = cvCloneImage(img);
vector::iterator it;
vector::iterator end_it = m_vecPoin
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2015-09-16 18:35 haus\
目录 0 2015-09-16 18:32 haus\Debug\
文件 1071616 2015-09-16 13:41 haus\Debug\haus.exe
文件 2475848 2015-09-16 13:41 haus\Debug\haus.ilk
文件 6196224 2015-09-16 13:41 haus\Debug\haus.pdb
目录 0 2015-09-16 18:35 haus\haus\
文件 879 2015-09-10 14:07 haus\haus.sln
文件 57856 2015-09-16 18:33 haus\haus.v11.suo
文件 3711 2015-09-16 18:01 haus\haus\CFeatures.cpp
文件 1528 2015-09-16 18:00 haus\haus\CFeatures.h
文件 10627 2015-09-16 18:05 haus\haus\CHausdorff.cpp
文件 2176 2015-09-16 18:05 haus\haus\CHausdorff.h
文件 3141 2015-09-16 17:52 haus\haus\haus.cpp
文件 4407 2015-09-16 17:57 haus\haus\haus.vcxproj
文件 1697 2015-09-16 17:57 haus\haus\haus.vcxproj.filters
文件 164 2015-09-15 20:59 haus\haus\haus.vcxproj.user
文件 92232 2015-07-16 10:40 haus\haus\Lena.jpg
文件 5813 2015-08-17 14:18 haus\haus\lena_model.jpg
文件 15673 2015-09-10 15:07 haus\haus\ls.jpg
文件 2599 2015-09-10 15:07 haus\haus\lsm.jpg
文件 2589 2015-09-12 20:32 haus\haus\lsmm.jpg
文件 8133 2015-09-12 20:31 haus\haus\lsmm.png
文件 1170 2015-09-10 14:42 haus\haus\model.jpg
文件 331 2015-09-16 17:57 haus\haus\readme.txt
文件 240721 2014-09-08 13:25 haus\haus\sg.jpg
文件 11376 2015-09-10 16:54 haus\haus\sgt.JPG
文件 1426 2015-09-10 22:04 haus\haus\sgtt.jpg
文件 14187 2015-09-10 14:42 haus\haus\src.JPG
文件 300 2015-09-15 14:08 haus\haus\utilis.cpp
目录 0 2015-09-16 18:32 haus\Release\
文件 18944 2015-09-16 18:05 haus\Release\haus.exe
............此处省略1个文件信息
- 上一篇:STM32_SPI_74HC595
- 下一篇:flash祖玛游戏源代码244940
相关资源
- Canny算子分割遥感影像
- SIFT+RANSAC
- SIFT算法源代码
- OpenCV 现实高斯金字塔的源码,非常经
- 高清超详细SIFT源代码分析
- sift源码实现附有详细注释及其核心论
- SIFT SURF算法的比较
- A Computational Approach to Edge Detection
- canny经典论文 原文
- sift算法sift-latest_win.zip
- 基于Hausdorff距离匹配的算法资料
- 基于局部视觉特征聚合的图像检索
- 利用OpenCV(2.4.13)的SURF/SIFT + RANSAC
- 双目测距-opencv
- 3D sift 匹配
- sift算法VC实现需要OPENCV
- 提取SIFT并用RANSAC剔去错匹配byRobHess
- SIFT经典文献.zip
- 拼接算法SIFT.rar
-
ImageRegistrationba
sedonSIFT.rar - sift算法详解及应用(特别详细版)
- Opencv下利用SIFT、SURF、ORB三种特征点实
- SIFT算法实现图像自动配准
- openc基于SIFT和Surf特征的目标跟踪
- 基于SIFT算法的图像特征提取系统的研
- SIFT算法详解及应用(讲的很详细)
- surf算法详解
- sift.rar
- sift DemoV4
- SIFT提出者David Lowe1999-2004发表的4篇文
评论
共有 条评论