【发布时间】:2016-06-12 00:55:30
【问题描述】:
在计算机视觉系统工具箱的 MATLAB 示例页面中,有一段代码用于在杂乱场景中使用点特征匹配进行对象检测。我在我的系统上运行相同的代码,但是它给出了错误“下标索引必须是真正的正整数或逻辑”,其中代码试图匹配两个图像之间的相似性。
I1 = rgb2gray(imread('kitchen.jpg'));
I2 = rgb2gray(imread('loops.jpg'));
points1 = detectSURFFeatures(I1);
points2 = detectSURFFeatures(I2);
[features1, valid_points1] = extractFeatures(I1, points1);
[features2, valid_points2] = extractFeatures(I2, points2);
indexPairs = matchFeatures(features1, features2);
matchedPoints1 = valid_points1(indexPairs(:, 1), :); //ERROR
matchedPoints2 = valid_points2(indexPairs(:, 2), :);
figure; showMatchedFeatures(I1, I2, matchedPoints1, matchedPoints2);
我是 MATLAB 新手,只是想理解这些概念,但我陷入了困境。任何帮助表示赞赏。谢谢。
【问题讨论】:
-
我认为这意味着下标索引不是正整数或逻辑。所以我会检查
indexPairs(:,1)是否是一个正整数或逻辑数组或其他数组。 -
indexPairs是一个由 0 和正数组成的数组,只要它设法找到两个图像之间的匹配项。 -
那么它是一个逻辑数组(仅限 1 和 0)还是数字(1 和您要索引到的数组的最大大小之间的所有整数)?
-
它是一个由 0 和与索引位置相关的数字组成的数组,因此是正整数。
-
这就是您收到错误的原因。索引可以是逻辑 OR 整数,而不是两者。
标签: matlab