本文来自http://blog.csdn.net/hellogv/ ,引用必须注明出处!
最近工作有点闲,有时间就玩点有意思的东西------SURF 图像识别(WIKI地址),懂了图像识别,真的有很多东西可以玩。。。。。先看看本文实现的效果:
左图不是相同的指纹,右图为相同的指纹
ShapeContext算法中典型的实验图片。。。借来用用而已。。。
本文修改后的代码可以到这里:http://download.csdn.net/source/2515577下载,本文的代码改自GoogleCode的OpenSource。
网上已经有很多封装好的SURF算法,这里我挑OpenSURF.OpenSURF在GoogleCode的地址http://code.google.com/p/opensurf1/,在【Source】 Tab里有C++版和C#版,C++版依赖Opencv,C#版不依赖OpenCV,我选择了C#版裸奔SURF。。。。在使用OpenSURF的C#版发现两个问题:
1。没有Match模块,所以这个就得自己写了;
2。OpenSURF for C#竟然大量使用GetPixel()...... -. -||| ......做过图像处理的兄弟都应该知道GetPixel()的效率...........这个也得自己改改。
解决问题1:C++版包含了Match模块,所以我就参考C++版的,写成C#。。。。。以下是我自己添加的Match代码:
解决问题2:参考网上的代码,把IntegralImage.cs的FromImage(Bitmap image)函数改成:
OK,解决了以上两个问题,OpenSURF的C#版功能算是跟C++差不多了。。。。当然,C#跟C++的速度还有点差距的。。。。接下来就说说如何提高识别率,有两个关键的系数要微调的:
1。FastHessian.getIpoints(0.0001f, 5, 2, iimg);的第一个参数决定了特征点的数量,越小则特征点越多;
2。在Utils.cs里面的if (d1 / d2 < 0.77) //越小匹配的点越少,但误判断点也越少;越大匹配的点越多,但误判断点也越多。
以上两个要微调的函数就要具体情况具体微调了。。。。
分享到:
相关推荐
OpenSURF广泛应用于图像识别、物体检测、场景理解、视频稳定等领域,尤其是在需要实时处理的场合,如无人机导航、自动驾驶和监控系统。 综上所述,OpenSURF算法在保持与SIFT相似的性能基础上,通过优化计算流程和...
- **特征检测**:使用OpenSURF库检测图像中的关键点。 - **特征描述**:计算每个关键点的描述子。 - **匹配**:将不同图像的描述子进行比较,找出匹配的关键点对。 - **后处理**:通过几何验证和剔除错误匹配,提高...
OpenSURF在原版SURF的基础上进行了优化,提高了算法的执行速度,使其更适合实时应用,如视频分析、场景识别和图像拼接等。在VS2008环境下开发的OpenSURFcpp项目,提供了一个实现这一算法的C++库,便于开发者集成到...
在实际应用中,OpenSURF常用于图像识别、物体检测、场景理解、图像拼接等多个领域。开发者可以通过学习和理解OpenSURF的代码,结合提供的示例,进一步改进或扩展其功能,以满足特定需求。例如,可以尝试调整参数以...
OpenSURF算法在许多领域都有应用,如图像识别、物体识别、图像拼接、增强现实等。它的开源性质促进了计算机视觉技术的发展,使得研究者和开发者能够基于此进行二次开发,推动了相关领域的创新。
SURF算法被广泛应用于物体识别、图像配准、三维重建等计算机视觉任务中。 首先,SURF算法的关键在于其提取特征点的速度快于SIFT算法,并且具有很高的重复性和良好的视角、尺度不变性。它通过使用积分图来加速特征点...
OpenSURF,全称为Speeded Up Robust Features,是一种计算机视觉中的特征检测算法,它在图像处理领域广泛应用,尤其在图像匹配、物体识别和视频分析等任务中扮演着重要角色。OpenSURF是对原版SURF算法的优化实现,...
OpenSURF_version1c是一个基于MATLAB实现的图像处理项目,专注于SIFT(尺度不变特征变换)算法的优化,以提高特征提取和匹配的效率。SIFT是David G. Lowe在1999年提出的,它是一种强大的图像描述符,能够有效识别...
该算法的核心在于快速地检测图像中的关键点,并对这些关键点进行稳定描述,使得它们在不同条件下的图像变换下仍能被准确识别。 OpenSurf.m文件很可能是实现OpenSURF算法的主要代码文件,可能包含了关键点检测、特征...
在移动设备上使用OpenCV 1.10进行图像识别是一项技术性强且具有广泛应用前景的任务。OpenCV(开源计算机视觉库)自1999年由Intel创建以来,已经成为计算机视觉领域的重要工具,由Willow Garage继续支持并发展。...
在计算机视觉领域,图像匹配是一项基础且关键的任务,广泛应用于目标识别、图像拼接、3D重建等多个场景。SURF(Speeded Up Robust Features)算法是SIFT(Scale-Invariant Feature Transform)的一种高效改进版本,...
总的来说,SURF算法在图像处理领域有着广泛的应用,包括但不限于图像识别、物体追踪、三维重建和图像拼接等。通过理解和掌握SURF算法,开发者可以利用其优势来提升计算机视觉系统的性能。而`OpenSURF_version1c`提供...
2. **目标检测与识别**:特征点匹配可用于物体识别,如人脸识别、车辆检测等。 3. **视频分析**:在视频序列中,跟踪同一物体的SURF特征,可以进行运动估计和跟踪。 4. **增强现实**:通过匹配真实世界图像的SURF...
"OpenSURF_version1c"可能是指一个开源的SURF实现版本,可能包含C语言或C++编写的代码库,用于在非MATLAB环境中实现SURF特征点检测和图像配准。这个库可能提供了更底层的控制和更高的性能,适合于需要高效处理大量...
MATLAB源代码MATLAB源码大集合220MB上千个源码文件: ...文字图像识别.rar 牛顿Newton插值 MATLAB源程序代码.rar 现代通信系统(MATLAB版) 源码.zip 用MATLAB对两幅图片进行图像匹配.rar 电滤波效果查看器GUI设计--浙江
图像特征点检测是图像处理的重要组成部分,它可以帮助我们识别和定位图像中的关键信息点,如角点、边缘或特定形状。特征点匹配则是将不同图像中的对应特征点进行关联,用于图像拼接、目标识别、三维重建等应用。 ...
MATLAB编程源代码文件大全集合【约1000+】 MATLAB源代码MATLAB源码大集合220MB上千个源码文件: ...文字图像识别.rar 牛顿Newton插值 MATLAB源程序代码.rar 现代通信系统(MATLAB版) 源码.zip 用MATLAB对两幅图片进行
综上所述,这个项目涵盖了图像处理和计算机视觉的基础知识,包括特征检测(SURF)、特征匹配、几何变换估计和图像配准,这些都是图像分析和识别领域的重要组成部分。通过MATLAB的仿真,开发者可以直观地理解这些概念...
在图像处理领域,特征提取是关键步骤之一,它有助于识别和匹配图像中的特定元素。SIFT(尺度不变特征变换)算法和SURF(加速稳健特征)算法是两种广泛使用的特征提取方法。本项目主要探讨了如何在SIFT的基础上进行...
这些算法被广泛应用于图像识别、物体检测、图像匹配等多个场景。下面将详细阐述这三个算法以及它们的源码实现。 1. SIFT(尺度不变特征变换) SIFT由David Lowe在1999年提出,是一种具有尺度不变性和旋转不变性的...