GithubHelp home page GithubHelp logo

robertwgh / ezsift Goto Github PK

View Code? Open in Web Editor NEW
93.0 5.0 28.0 987 KB

ezSIFT: An easy-to-use standalone SIFT library written in C/C++

License: Apache License 2.0

Shell 0.80% Makefile 0.61% C++ 49.49% CMake 0.82% Objective-C 48.29%
sift-algorithm sift-descriptors computer-vision feature-detection cpp feature-extraction feature-matching sift

ezsift's Introduction

ezSIFT: An easy-to-use stanalone SIFT library

License Build Status

The SIFT (scale-invariant feature transform) algorithm is considered to be one of the most robust local feature detector and description methods. Most of the open-source SIFT implementations rely on some 3rd-party libraries. Some of them even rely on a few different large libraries. These dependencies make the installation, compilation and usage not easy.

The ezSIFT library provides a standalone and lightweight SIFT implementation written in C/C++. The ezSIFT is self-contained, and does not require any other libraries. So it is easy to use and modify. Besides, the implementation of the ezSIFT is straightforward and easy to read.

The ezSIFT project was original hosted at SourceForge (link). We recently migrated it to github to better maintain the code development.

Documentation

Please read ezSIFT Wiki page for details.

Examples

I also provide two examples showing how to use this library:

  • examples/feature_extract: detect keypoints and extract feature descriptor from a single image.
  • examples/image_match: detect keypoints and extract features from two images and perform feature matching.

How to build

Mac OS

Follow the following instructions:

cd platforms/desktop/
mkdir build
cd build
cmake ..
make

Then you can find the built binary under build/bin directory. Run the two demos like this:

./image_match img1.pgm img2.pgm
./feature_extract img1.pgm

Or, you can use the following instruction to generate Xcode project:

cd platforms/desktop/
mkdir build
cd build
cmake .. -GXcode

Then, open ezsift.xcodeproj project to build.

Windows (Visual Studio)

cd platforms/desktop/
mkdir build
cd build
cmake ..

Upon finishing the above instructions, A Visual Studio solution ezsift.sln will be generated. Open the solution file and build all projects, the static lib and examples will be built.

Android NDK native

  1. Please install the latest Android NDK package, and add NDK root folder to your system environment PATH to expose ndk-build tool to the shell.
  2. Go to platforms/android.
  3. run ./build.sh
  4. After build is finished, you will find the binaries under build/android/bin/.
  5. Connect an Android device to your computer using ADB. Use install_and_run.sh to install the binaries and run them on the device.

License

Copyright 2013 Guohui Wang

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

ezsift's People

Contributors

gwangsc avatar robertwgh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

ezsift's Issues

Image size=4096*3000 std::bad_alloc

the picture size is 4096*3000
template
void Image::init(int _w, int _h)
{
w = _w;
h = _h;
data = new T[w * h];
}
0x75CAA6E2 处(位于 31.SIFT_ZYX.exe 中)有未经处理的异常: Microsoft C++ 异常: std::bad_alloc,位于内存位置 0x0135F718 处。

Is it because the picture is too big?How to solve it?

gaussian coefficients

Thank you for your well-commented program. I learned a lot from them.
I have a question about a line of code. In ezsift.cpp, line 218
gaussian_coefs[i][j] = expf(tmp * tmp * -0.5f) * (1 + j / 1000.0f);
I notice you have multiplied the exponential with a factor (1 + j / 1000.0f). Why would we need that, it seems will cause the gaussian kernel asymmetric any more?

executable binaries or libs

Hi,

I'm interested in using ezSift within a Java application which will be deployed later on a windows + linux machine. Is there any executable or lib file that I can call from within java code?

Thanks in advance.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.