Функция обнаружения 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));