1

为什么每当我尝试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{:});
4

2 回答 2

2

detectMSERFeatures不接受逻辑输入,如文档和您收到的错误中所述。detectSURFFeatures做。我不知道是否有具体原因,因为我不熟悉不同算法的局限性。

您可以简单地将二进制图像转换为列出的类型之一,然后在其上运行 MSER: detectMSERFeatures(double(img));

于 2013-11-01T14:46:56.860 回答
2

试试这个:首先使用使图像 2 加倍,img=im2double(img); 然后将其提供给 MSER detectMSERFeatures(img)

于 2013-11-10T08:09:16.833 回答