MATLAB - в изображениях uint16 не обнаружено SURF-функций - PullRequest
0 голосов
/ 01 ноября 2018

Я использую функции SURF для регистрации изображений. У меня есть изображения типа uint16.

pts1 = detectSURFFeatures(image)

Когда я использовал вышеуказанную функцию на uint16 изображениях, функция возвращала 0 пунктов SURF. В качестве обходного пути я использовал преобразование изображений в uint8, после чего функция возвращала хорошее количество обнаруженных точек SURF. Таким образом, функция работала на uint8 изображениях, но не на uint16.

Обратите внимание, что функция не показывает никаких ошибок. Он выполняется успешно, но SURFPoints object вернул 0 очков SURFP.

Почему это происходит? Документация вышеуказанной функции говорит, что изображение может быть single, double, uint8, uint16, int16 and logical. Тогда почему эта функция не работает на uint16 изображениях, которые я использую?

Я экспериментировал, конвертируя изображение в double тип данных. Это не сработало. Работало только когда я конвертировал изображение в uint8.

Извините, я не могу поделиться изображениями, поскольку они являются конфиденциальными данными, но кто-нибудь здесь сталкивался с подобными проблемами?

Я мог бы продолжить преобразование в uint8, но это создает какую-то другую проблему, поэтому я хочу знать решение фундаментальной проблемы.

Я использую MATLAB 2017.

...