strong_corners = corners.selectStrongest(length(corners), scores > threshold);显示参数类型不正确?
时间: 2023-12-17 18:03:20 浏览: 172
detect_those_corners:使用Harris Corner Detector检测图像和实时视频中的重要角落。 和Shi-tomasi拐角检测器
对不起,我的回答有误。`selectStrongest`函数的第一个参数应该是要选择的角点数目,而不是角点集合的长度。因此,可以将第一个参数修改为想要选择的角点数目,例如100,代码如下:
```matlab
strong_corners = corners.selectStrongest(100, scores > threshold);
```
此外,还需要保证`scores`变量是角点得分的向量,长度与`corners`变量中存储的角点个数相同。如果使用`detectFASTFeatures`函数来检测角点,则可以直接从`corners`变量中获取每个角点的得分,代码如下:
```matlab
% 在图像中检测角点
corners = detectFASTFeatures(img, 'MinContrast', threshold, 'ROI', [1 1 size(img,2) size(img,1)], 'NumOctaves', 1, 'NumScaleLevels', 1, 'Radius', n);
% 获取每个角点的得分
scores = corners.Metric;
% 输出得分高于阈值的角点
strong_corners = corners.selectStrongest(100, scores > threshold);
```
如果使用其他的角点检测方法,则需要根据具体情况获取每个角点的得分,并将其存储在`scores`变量中。
阅读全文