为什么每当我尝试在matlab中使用带有二进制图像的detectSURFFeatures(img)
时,我给出了正确的点,但每当我使用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{:});
答案 0 :(得分:2)
detectMSERFeatures
不接受逻辑输入,如documentation和您收到的错误中所述。 detectSURFFeatures
。我不知道是否有具体原因,因为我不熟悉不同算法的局限性。
您只需将二进制图像转换为列出的类型之一,然后在其上运行MSER:
detectMSERFeatures(double(img));
答案 1 :(得分:2)
试试这个:
首先使用img=im2double(img);
使图片2加倍
然后把它喂给MSER
detectMSERFeatures(img)