1 | initial version |
To do image matching, you can look at SIFT, SURF, ORB or other feature detection algorithms. Basically, you first extract keypoints and feature descriptions from target images and the images to be matched. Then, you can employ certain image matching algorithm to perform the matching, such as brute-force method, or best-bin search method and so on.
For your project, you can first look at feature detection. You have two quick options. You can either use OpenCV library to help you. OpenCV provides implementations of SIFT, SURF and so on. Unfortunately, they are in a nonfree package and are not included in the OpenCV4Android build. But you can look at this webpage. This webpage provides method to build SIFT/SURF OpenCV package for Android. A binary library is also provided, so you can directly use it. Another option is to find an Open-source SIFT/SURF implementation, and integrate it into your project. Such as this implementation called ezSIFT.
Once you have the feature detection, you can first try the brute-force method to do the matching, see if it works as you expected. After that, you have chances to apply more advanced matching algorithms and improve the matching speed.
2 | No.2 Revision |
To do image matching, you can look at SIFT, SURF, ORB or other feature detection algorithms. Basically, you first extract keypoints and feature descriptions from target images and the images to be matched. Then, you can employ certain image matching algorithm to perform the matching, such as brute-force method, or best-bin search method and so on.
For your project, you can first look at feature detection. You have two quick options.
options. I assume you know how to use Android NDK in an Android project. Or at least you know how to use JNI to wrap NDK functions into JAVA interfaces.
You can either use OpenCV library to help you. OpenCV provides implementations of SIFT, SURF and so on. Unfortunately, they are in a nonfree package and are not included in the OpenCV4Android build. But you can look at this webpage. This webpage provides method to build SIFT/SURF OpenCV package for Android. A binary library is also provided, so you can directly use it.
it.
Another option is to find an Open-source SIFT/SURF implementation, and integrate it into your project. Such as this implementation called ezSIFT.
Once you have the feature detection, you can first try the brute-force method to do the matching, see if it works as you expected. After that, you have chances to apply more advanced matching algorithms and improve the matching speed.