sift算法的编译与实现

java实现的sift全部代码 纯java代码写的sift图片识别算法,欢迎交流指正!图片匹配效果还是可以的,可以直接运行!木有使用opencv、metlab等api = = 立即下载

九之续、sift算法的编译与实现

作者:July 、二零一一年三月一日。
代码:Rob Hess维护的sift 库,July updated。
环境:windows xp+vc6.0。
条件:opencv1.0、gsl-1.8.exe
-----------------------------------------------

   昨日,下载了Rob Hess的sift库,将其源码粗略的看了看,想要编译时,遇到了不少问题,先修改了下代码,然后下载opencv、gsl。最后,几经周折,才最终编译成功。
   以下便是sift源码库编译后的效果图:


    为了给有兴趣实现sift算法的朋友提供个参考,特整理此文如下。要了解什么是sift算法,请参考:九、图像特征提取与匹配之SIFT算法。ok,咱们下面,就来利用Rob Hess维护的sift 库来实现sift算法:

    首先,请下载Rob Hess维护的sift 库:
   http://blogs.oregonstate.edu/hess/code/sift/
   下载Rob Hess的这个压缩包后,如果直接解压缩,直接编译,那么会出现下面的错误提示:
编译提示:error C1083: Cannot open include file: 'cxcore.h': No such file or directory,找不到这个头文件。

    这个错误,是因为你还没有安装opencv,因为:cxcore.h和cv.h是开源的OPEN CV头文件,不是VC++的默认安装文件,所以你还得下载OpenCV并进行安装。然后,可以在OpenCV文件夹下找到你所需要的头文件了。

    据网友称,截止2010年4月4日,还没有在VC6.0下成功使用opencv2.0的案例。所以,如果你是VC6.0的用户请下载opencv1.0版本。vs的话,opencv2.0,1.0任意下载。

    以下,咱们就以vc6.0为平台举例,下载并安装opencv1.0版本、gsl等。当然,你也可以用vs编译,同样下载opencv(具体版本不受限制)、gsl等。


   请按以下步骤操作:
   一、下载opencv1.0
   http://sourceforge.net/projects/opencvlibrary/files/opencv-win/1.0/OpenCV_1.0.exe/download

   二、安装opencv1.0,配置Windows环境变量
    1、安装注意:
假如你是将OpenCV安装到C:/Program Files/OpenCV(如果你安装的时候选择不是安装在C盘,则下面所有对应的C盘都改为你所安装在的那个“X盘”,即可),在安装时选择"将/OpenCV/bin加入系统变量",打上“勾”。(Add/OpenCV/bin to the systerm PATH。这一步确认选上了之后,下面的检查环境变量的步骤,便可免去)

 

    2、检查环境变量。为了确保上述步骤中,加入了系统变量,在安装opencv1.0成功后,还得检查C:/Program Files/OpenCV/bin是否已经被加入到环境变量PATH,如果没有,请加入。
    3、最后是配置Visual C++ 6.0。

    全局设置
    菜单Tools->Options->Directories:先设置lib路径,选择Library files,在下方填入路径: 
          C:/Program Files/OpenCV/lib

    然后选择include files,在下方填入路径(参考下图): 
          C:/Program Files/OpenCV/cxcore/include
          C:/Program Files/OpenCV/cv/include
          C:/Program Files/OpenCV/cvaux/include
          C:/Program Files/OpenCV/ml/include
          C:/Program Files/OpenCV/otherlibs/highgui
          C:/Program Files/OpenCV/otherlibs/cvcam/include

    最后选择source files,在下方填入路径: 
        C:/Program Files/OpenCV/cv/src
        C:/Program Files/OpenCV/cxcore/src
        C:/Program Files/OpenCV/cvaux/src
        C:/Program Files/OpenCV/otherlibs/highgui
        C:/Program Files/OpenCV/otherlibs/cvcam/src/windows

    项目设置
    每创建一个将要使用OpenCV的VC Project,都需要给它指定需要的lib。菜单:Project->Settings,然后将Setting for选为All Configurations,然后选择右边的link标签,在Object/library modules附加上:
       cxcore.lib cv.lib ml.lib cvaux.lib highgui.lib cvcam.lib
      当然,你不需要这么多lib,你可以只添加你需要的lib(见下图)

 

   三、下载gsl,gsl也是一个库,也需要下载:
        http://sourceforge.net/projects/gnuwin32/files/gsl/1.8/gsl-1.8.exe/download。在编译时候GSL也是和OpenCV一样要把头文件和lib的路径指定好。

   四、配置gsl

   将C:/WinGsl/bin中的WinGsl.dll和WinGslD.dll复制到C:/VC6.0/Bin;将整个Gsl目录复制到C:/VC6.0/Bin下;lib目录下的所有.lib文件全部复制到C:/VC6.0/Lib下。
   然后,在tools-options-directories中,将C:/WinGsl下的lib,gsl分别加入到库文件和头文件的搜索路径中。

   以下是可能会出现的错误情况处理:

   I、OpenCV安装后“没有找到cxcore100.dll”的错误处理
在安装时选择“将/OpenCV/bin加入系统变量”(Add/OpenCV/bin to the systerm PATH)。 但该选项并不一定能成功添加到系统变量,如果编写的程序在运行时出现“没有找到cxcore100.dll,因为这个应用程序未能启动。重新安装应用程序可能会修复此问题。”的错误。

   手动在我的电脑->属性->高级->环境变量->系统变量->path添加c:/program files/opencv/bin;添加完成后需要重启计算机。

   II、vc6.0下配置了一下,可是编译程序时遇到如下一个错误: 
Linking... LINK : fatal error LNK1104: cannot open file"odbccp32.libcxcore.lib" 
   可能是:在工程设置的时候添加连接库时没加空格或.来把两个文件名(odbccp32.lib cxcore.lib)分开。注意每一次操作后,记得保存。


   若经过以上所有的步骤之后,如果还不能正常编译,那就是还要稍微修改下你下载的Rob Hess代码。ok,日后,若有空,再好好详细剖析下此sift的源码。最后,祝你编译顺利。

updated

    今天下午试了下sift + KD + BBF,然后用两幅不同的图片做了下匹配(当然,运行结果显示是不匹配的),效果还不错:http://weibo.com/1580904460/yDmzAEwcV#1348475194313! 

同时,编译的过程中,直接用的VS2010 + opencv(并没下gsl)。2012.09.24。完。

SIFT特征提取JAVA版 直接引入java工程,new SIFT()便可以获得sift特征 立即下载

相关推荐

SIFT算法实现图像自动配准

实现了SIFT算法,实现了SAR与光学图像的自动配准,相比于手动方法更加智能化,去除了认为选择配准点的非鲁棒因素,配准精度能达到一个像素以内。

经典算法研究系列:九之续、sift算法的编译与实现

九之续、sift算法的编译与实现 作者:July 、二零一一年三月一日。代码:Rob Hess维护的sift 库,July updated。环境:windows xp+vc6.0。条件:opencv1.0、gsl-1.8.exe----------------------------------------------- 昨日,下载了Rob Hess的sift库,将其源码粗略的...

dinongxu8804的博客 353

STM32实战指南:TFTLCD液晶屏驱动与ILI9341应用解析

本文详细解析了STM32驱动TFTLCD液晶屏的实战技巧,重点介绍了ILI9341控制器的硬件连接、寄存器操作及性能优化方法。通过8080并行接口时序分析、GRAM操作优化和DMA传输应用,帮助开发者高效实现液晶屏驱动,适用于工业控制、智能家居等场景。

weixin_26873711的博客 232

关于VS2013运行Rob Hess的sift库

由于毕业设计是做图像拼接,刚好就用到了sift算法。 在网上找到了库的下载,但是很可惜里面有好多需要改的地方,本人太懒了,所以就在网上找了现成的改好的代码。 http://blog.youkuaiyun.com/chen825919148/article/details/7685952 在这里要谢谢chen825919148,要不是她,我也不会这么快就能用sift的库。 文章中只涉及到了 unt

shjiajia2015的专栏 719

西门子 S7-200 SMART 系列六:手把手教你配置S7-200 SMART Modbus RTU

最新发表:https://www.ics-pedia.com/%e8%a5%bf%e9%97%a8%e5%ad%90-s7-200-smart-%e7%b3%bb%e5%88%97%e5%85%ad%ef%bc%9a%e6%89%8b%e6%8a%8a%e6%89%8b%e6%95%99%e4%bd%a0%e9%85%8d%e7%bd%aes7-200-smart-modbus-rtu%e5%ae%9e%e4%be%8b/

John_09040211的博客 3279

华为交换机NAC配置避坑指南:搞定打印机、摄像头等哑终端接入(含MAC旁路认证)

本文详细解析华为交换机NAC配置中的MAC旁路认证方案,特别针对打印机、摄像头等哑终端接入问题提供避坑指南。通过对比传统模式与统一模式的配置差异,结合实际案例和典型错误排查,帮助网络工程师高效解决802.1X认证环境下的哑终端接入难题。

weixin_30338497的博客 441

RobHess的SIFT源码分析:sift.h和sift.c文件

SIFT源码分析系列文章的索引在这里:RobHess的SIFT源码分析:综述 这两个文件是RobHess的SIFT库中最重要的两个文件,里面包括用SIFT算法进行特征点检测的函数。 文件中的内容说白了很简单,就是两个特征点检测函数sift_features()和 _sift_features(), sift_features()是用默认参数进行特征点检测, _si

Why So Serious? 9620

Ubuntu22.04安装ROS1

代表使用 2 线程进行编译,可以根据 CPU 适当调整。如果出现小乌龟窗口,说明安装成功 🎉!启动成功,则打开另一个终端,测试。需要解决一些兼容性问题,因为。由于 Ubuntu 22.04。过程,确保成功安装。

asafriend的博客 4647

Rob Hess关于Sift的说明文档

摘要: 最近几年在计算机视觉研究的各个领域可以看到对不变量特征点方法的大量使用。不变量特征点的引入,使尺度不变特征变换(sift)成为其中最有效和最广为使用的的方法之一,并且作为该方法流行的主要刺激因素。本文展示了开源sift库,以C实现,并且在http://eecs.oregonstate.edu/~hess/sift.html上免费提供,并与传统的David Lowe的提供的Sift执行效率

selinahuiling的专栏 5007

UE4 Unlua源码解析8 - Lua与C++之间的参数转换的实现原理

Lua与C++之间的参数转换的实现原理

TurboQ珞珈 898

OpenClaw 超级 AI 实战专栏【模型推理与实战】(二)官方预训练模型下载与使用

OpenClaw 预训练模型需按「固定目录结构」存放(模型文件夹包含权重 + 配置文件),否则会加载失败;核心流程:下载模型→验证文件完整性→加载模型→传入图片执行推理→可视化结果;常见问题集中在「路径错误」「显存不足」「文件缺失」,按文中方案可快速解决。

qq_36130719的博客 307

RobHess的SIFT源码分析:综述

最初的目的是想做全景图像拼接,一开始找了OpenCV中自带的全景拼接的样例,用的是Stitcher类,可以很方便的实现全景拼接,而且效果很好,但是不利于做深入研究。 Stitcher类使用方法请查OpenCV API:http://docs.opencv.org/2.4.4/modules/refman.html,搜索Stitcher 使用OpenCV中自带的Stitcher类的全景图像拼接样

Why So Serious? 4万+

刷机维修进阶教程-----adb禁用错了系统app导致无法开机 如何保数据无损恢复机型

在刷机维修过程中 。我们会遇到一些由于客户使用adb指令来禁用手机app而导致手机无法开机进入系统的故障机型。通常此类问题机型有好几种解决方法。但如果客户需要保数据来恢复机型。其实操作也是很简单的.还有类似误删除应用导致不开机等等如何保数据。  通过博文了解💝💝💝    1💝💝💝----adb禁用或者删除系统app导致无法开机的几种解决方法 2💝💝💝----如何保数据来无损恢复机型 3💝💝💝----其他保数据解决系统类故障无法开机的步骤解析

小马哥的专栏 1352

经典算法研究系列 九之续 sift算法的编译与实现

经典算法研究系列 九之续 sift算法的编译与实现

gdfyug的博客 258

git clone出现fatal: unable to access Failed to connect to github.com port 443: Timed out解决方案

本文主要介绍了git clone出现fatal: unable to access Failed to connect to github.com port 443: Timed out解决方案,希望能对使用git的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 23万+

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

sift算法的研究(2)编译与实现

作者:July 、二零一一年三月一日。 代码:Rob Hess维护的sift 库,July updated。 环境:windows xp+vc6.0。 条件:opencv1.0、gsl-1.8.exe -----------------------------------

fangfang的专栏 1752

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

opencv有基于c语言的教程吗_编译Rob Hess基于OpenCV的SIFT算法的C语言实现——转载...

Wikipedia,自由的百科全书[编辑]编译Rob Hess基于OpenCV的SIFT算法的C语言实现[编辑]开发平台Microsoft Visual Studio 2005OpenCV 2.0Gsl 1.8这里用的是:gsl-1.8.exe;Rob Hess的SIFT算法在VC.net下实现sift-1.1.2_20100521_win.zip[编辑]平台安装安装OpenCV1.0请参考:安装...

weixin_39777404的博客 133

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

编译Rob Hess基于OpenCV的SIFT算法的C语言实现

开发平台 Microsoft Visual Studio 2005 OpenCV 2.0 下载地址:http://www.opencv.org.cn/download/OpenCV-2.0.0a-win32.exe Gsl 1.8 下载地址:http://jaist.dl.sourceforge.net/project/gnuwin32/gsl/1.8/gsl-1.8.exe 这里

zhangcz0106的专栏 883
上一篇: 从贝叶斯方法谈到贝叶斯网络
下一篇: 教你一步一步用c语言实现sift算法
CopperDong
博客等级 码龄14年 1205粉丝 466原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值