No SURF features detected in uint16 images.

6 views (last 30 days)
Nancy Semwal
Nancy Semwal on 29 Oct 2018
Answered: Michael Jones on 19 Mar 2024 at 5:35
I am using SURF features for image registration. I have images of type uint16.
pts1 = detectSURFFeatures(image)
When I used the above function on uint16 images, the function returned 0 SURF points. As a workaround, I used to convert the images to uint8, after which the function was returning a good amount of detected SURF points. Thus, the function worked on uint8 images, but not on uint16.
Note, that the function doesn't show any error. It executes successfully, but the SURFPoints object returned has 0 SURFPoints.
Why does this happen? The documentation of the above function says that the image can be double, uint8, int8, uint16, int16 and logical. Then why is the function not working on the uint16 images I am using?
I experimented by converting the image to double data type. It didn't work. It worked only when I convert the image to uint8.
Sorry I cannot share the images since they are confidential data, but did anybody here faced similar issues?
I could have continued with the conversion to uint8, but that is posing some other problem, hence I want to know the solution to the fundamental issue.

Answers (2)

antonio redavid
antonio redavid on 28 Mar 2019
I have the same problem. Does anyone have suggestions?

Michael Jones
Michael Jones on 19 Mar 2024 at 5:35
I'm having the same issue, also for SIFT features too, anyone?

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!