OpenSift源代码编译过程记录
本文记录了在CentOS6.5上编译Sift的开源实现OpenSift的编译过程,同一时候记录了编译过程中的几个问题.
sift的理论已经有非常多了,以下会给出链接:
1.Requirements
a.OpenCV
All code in this package requires the OpenCV library (known working version is 2.3):http://sourceforge.net/projects/opencvlibrary/
b.GDK/GTK+2
Some functions require GDK/GTK+2 (known working version is 2.18.4): http://www.gtk.org/
opencv的安装能够看CentOS6.5上配置Python2.7+OpenCV2.4.7
2.Build
从github下载源代码,解压如图
作者给出的build和使用过程
To build everything, use make:
#make
This should produce a few executables in bin/, a static library lib/libopensift.a, and some HTML documentation in docs/.
You can use the -h argument to get help with any of the executables. libopensift.a can be compiled into your own code using the standard method:
#gcc -I/path/to/opensift/include/ -L/path/to/opensift/lib/ yourcode.c -o yourexecutable -lopensift
The documentation in docs/ describes all of the functions available in libopensift.a as well as
#defines, etc. Use the documentation to determine what header files from include/ to include in your code.
You can also individually build any of the executables or libopensift.a, e.g.
照做,非常明显,一般人make完了都会有错。错误例如以下:
确认你已经安装了opencv和gtk,然后出现上图错误的话肯定就是编译设置的问题了,
提示信息已经说了:
Package opencv was not found in the pkg-config search path.
Perhaps you should add the directory containing `opencv.pc'
to the PKG_CONFIG_PATH environment variable,
就是说pkg-config找不到opencv.pc,那就找到opencv.pc,cp到/usr/lib/pkgconfig下
#find / -name opencv.pc
安装文件夹就是/usr/lib/pkgconfig/opencv.pc了。拷贝到pkgconfig下
#cp /usr/local/lib/pkgconfig/*.pc /usr/lib/pkgconfig。然后再又一次make。没报错就Ok了
3.test
# bin/match beaver.png beaver_xform.png,报错例如以下:
opencv的动态库没找到。改动例如以下:
# vim /etc/ld.so.conf
加入/usr /local/lib(这里是opencv安装后的库文件夹)
#ldconfig
又一次运行下,效果如图:
相关链接:
http://robwhess.github.io/opensift/(opensift介绍)
https://github.com/robwhess/opensift(opensift源代码)
http://www.cs.ubc.ca/~lowe/keypoints/(sift)
http://www.robots.ox.ac.uk:5000/~vgg/research/affine/index.html
http://blog.csdn.net/onlyzkg/article/details/11570965(理论)
http://blog.csdn.net/abcjennifer/article/details/7639681(理论)
http://cgwxyz.blog.163.com/blog/static/262806020105307929424/(编译错误)
OpenSift源代码编译过程记录的更多相关文章
- win10--vs2015--libjpeg--64位库的编译过程记录
win10--vs2015--libjpeg--64位库的编译过程记录 1. 下载源代码: http://libjpeg.sourceforge.net/ 或者 http://www.ij ...
- Java源代码编译过程
编译其本质是将一种语言规范转换成另一种语言规范,即将Java语言规范转换为JVM虚拟机语言规范.结果就是.java文件到.class文件. 对于C/C++编译直接将高级语言转换为机器语言,Java ...
- 3DSlicer源代码编译过程vs2008+windows xp [转]
一 下载QT源代码编译 1. 简述 在 Windows2000/xp/vista 下,安装 VS2008, QT 4.7.2 :并在 VS2008上建立 QT 的集成开发环境,利用 VS2008 ...
- Android源代码编译过程及指令
编译Android源代码分为两种情况: 1. 完整编译源码: ./mk_aliphone.sh --> 完整编译脚本 --> 6735 输入对应的编号 --> userdebug ...
- TNF-mutithread 编译过程记录
地址 https://github.com/msng4t/TNF-mutithread 地址 https://github.com/msng4t/TNF 目的:想要寻找一套性能,可读性相对较好的Soc ...
- Linux1.0源代码编译过程
根据源代码包中的readme文件及http://chfj007.blog.163.com/blog/static/173145044201191195856806/?suggestedreading& ...
- 将gdal源码转化为VS工程编译过程记录
作者:朱金灿 来源:http://blog.csdn.net/clever101 为什么要用VS工程的方式来编译gdal库?主要还是为了调试方便,虽然理论上使用命令行方式生成库也能调试,详见:GDAL ...
- Mariadb源代码编译过程
从微博上看到有人提及Mariadb,搜索了一下.找到地址https://mariadb.org/,这是mysql的一个分支,由原作者维护.意在与oracle分庭抗礼,避免oracle将来毕源. 眼下版 ...
- QtZint编译过程记录(要使用 QTMAKE_CFLAGS += /TP 参数)
1,下载zint后,在zint-2.4.3\win32\vcx目录下找到zlib.props和libpng.props文件,分别改为zlib和libpng的源码目录.这2个开源库最好是找工程中使用的版 ...
随机推荐
- winform上控件的拖拽小结
这里罗列出几个相关的事件和属性,具体的实现介绍已有非常优秀的文章了,文章末尾我将会给出,大家可以去参考. 属性: AllowDrop: 目标控件必须设定为true,才能接受拖拽来的东西. 事件: It ...
- 网页QQ弹出
<script language="javascript"> function cdyht(){ window.location.href='tencent://Mes ...
- [算法]从一道题引出variable-precision SWAR算法
苏君君出了一道题,是牛客网上面的: 输入一个int型整数,输出该数二进制表示中1的个数.其中负数用补码表示. 其实这道题并不难,大家很容易想到的解法是转成字符串的思路,即如下所示: public st ...
- 通过ambari安装hadoop集群(一)
之前一直用的开源社区的版本,最近突然想到找一个好的商业版本用着,然后一直使用,然后就定上了hdp和cdh,都装上去了,但是cdh使用难度太大了,和开源版本的差距比较大,api不会使用,需要学它的cdk ...
- Spring Cloud Sleuth 服务跟踪 将跟踪信息存储到数据库
参见上一篇博客:Spring Cloud Sleuth 服务跟踪 参考:zipkin使用mysql保存数据 主要在跟踪服务上配置: 在数据库创建数据库表:(可不创建,在classpath中添加对应的s ...
- 在android程序中打开另一个应用程序
Android 开发有时需要在一个应用中启动另一个应用,比如Launcher加载所有的已安装的程序的列表,当点击图标时可以启动另一个应用. 一般我们知道了另一个应用的包名和MainActivity的名 ...
- js学习(五)-全局函数和类内部函数区别
//---------------------------js代码--------------------------- function User(){ //类成员的定义及构造函数 th ...
- socket阻塞与非阻塞,同步与异步、I/O模型
socket阻塞与非阻塞,同步与异步 1. 概念理解 在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式:同步: 所 ...
- 使用 js替换网页中的关键词为链接
要求把一段html脚本中的疾病名添加到疾病库的链接,只添加一次,要避开超链接或图片链接. 最初是用的 str.replace('糖尿病', '<a href=...>糖尿病</ ...
- 总结一些笔记上的C和C++知识点
1.如果没有提供自己的copy构造函数,C++会提供一个默认的copy构造函数,是成员到成员的copy. 2.C中static的作用: 1.隐藏:如果未加static,编译多个文件的时候,所有的全局变 ...