Функция обнаружения MSER не работает в Matlab

Почему это когда я пытаюсь использовать detectSURFFeatures(img) с двоичным изображением в Matlab дает мне правильные очки, но всякий раз, когда я использую detectMSERFeatures(img) с тем же двоичным изображением
дает мне ошибку, вместо того, чтобы указывать некоторые действительные регионы?

ОШИБКА:

Error using detectMSERFeatures
Expected input number 1, I, to be one of these types:

uint8, int16, uint16, single, double
Instead its type was logical.

Error in detectMSERFeatures>parseInputs (line 75)
validateattributes(I,{'uint8', 'int16', 'uint16', ...

Error in detectMSERFeatures (line 64)
[Iu8, params] = parseInputs(I,varargin{:});

2 ответа

Решение

Попробуйте это: сначала сделайте двойное изображение 2, используя img=im2double(img); затем скорми его MSERdetectMSERFeatures(img)

detectMSERFeatures не принимает логические входы, как указано в документации и в получаемой вами ошибке. detectSURFFeatures делает. Я не знаю, есть ли конкретная причина, потому что я не знаком с ограничениями различных алгоритмов.

Вы можете просто преобразовать ваш двоичный образ в один из перечисленных типов и запустить на нем MSER:detectMSERFeatures(double(img));

Другие вопросы по тегам