2

I am going to work on a image processing project "currency recognition system " in pycharm. I just want to match the input image with the existing images in the database and show the result(database image name). How can I do this with SURF function. I checked it on internet but didn't get any relevant code. Could you please help me to do this?

Thanks Chathu

Abdul Fatir
  • 6,159
  • 5
  • 31
  • 58
  • 1
    Your question is very broad and unspecific. You should tell us what you already tried, give us a piece of code you worked on, so we got something to work with. Please consider reading [How To Ask](http://stackoverflow.com/help/how-to-ask) and editing your post. You also may want to tag `matplotlib` instead of pycharm (the IDE is irrelevant). – Ian Jun 23 '16 at 07:19
  • Thanks for your comment. Still I have not started the task. I just need to know that how to use "surf " function to match the database images. If you can help me then that would be great. – Chathuranga Dulaj Jun 23 '16 at 07:26
  • Probably duplicated:
    Check this [link](http://stackoverflow.com/questions/22175533/what-is-the-equivalent-of-matlabs-surfx-y-z-c-in-matplotlib).
    – Gal Dreiman Jun 23 '16 at 07:36

2 Answers2

2

You're looking for an implementation of Speed Up Robust Features (SURF). You'll be better off using a library like OpenCV for your use case.

Read the OpenCV docs on how to Install.
Here's how to use SURF in OpenCV once you're done installing.

Abdul Fatir
  • 6,159
  • 5
  • 31
  • 58
1

enter image description here

SIFT and SURF are examples of algorithms that OpenCV calls “non-free” modules. These algorithms are patented by their respective creators, and while they are free to use in academic and research settings, you should technically be obtaining a license/permission from the creators if you are using them in a commercial (i.e. for-profit) application.

But Good New is ...

It’s also important to note that by using opencv_contrib you will not be interfering with any of the other keypoint detectors and local invariant descriptors included in OpenCV 3. You’ll still be able to access KAZE, AKAZE, BRISK, etc. without an issue:

>>> kaze = cv2.KAZE_create()
>>> (kps, descs) = kaze.detectAndCompute(gray, None)
>>> print("# kps: {}, descriptors: {}".format(len(kps), descs.shape))
# kps: 359, descriptors: (359, 64)
>>> akaze = cv2.AKAZE_create()
>>> (kps, descs) = akaze.detectAndCompute(gray, None)
>>> print("# kps: {}, descriptors: {}".format(len(kps), descs.shape))
# kps: 192, descriptors: (192, 61)
>>> brisk = cv2.BRISK_create()
>>> (kps, descs) = brisk.detectAndCompute(gray, None)
>>> print("# kps: {}, descriptors: {}".format(len(kps), descs.shape))
# kps: 361, descriptors: (361, 64)

More Information Get From That Link: https://www.pyimagesearch.com/2015/07/16/where-did-sift-and-surf-go-in-opencv-3/

Sohaib Aslam
  • 1,245
  • 17
  • 27