比较2图像的detectSURFFeatures的示例如下。我无法在我的MATLAB中使detectSURFFeatures函数工作。没有帮助或doc detectSURFFeatures给出任何线索。错误说" > UncalibratedSterio 未定义的功能' detectSURFFeatures'对于输入参数类型' uint8'。"但据我所知,函数本身可以覆盖uint8。我该怎么办?
%Rectified Sterio Image Uncalibrated
% There is no calibration of cameras
I1 = rgb2gray(imread('right_me.jpg'));
I2 = rgb2gray(imread('left_me.jpg'));
Value = 2000.0;
blobs1 = detectSURFFeatures(I1, 'MetricThreshold', Value);
blobs2 = detectSURFFeatures(I2, 'MetricThreshold', Value);
figure;
imshow(I1);
hold on;
plot(selectStrongest(blobs1, 30));
title('Thirty strongest SURF features in I1');
figure;
imshow(I2);
hold on;
plot(selectStrongest(blobs2, 30));
title('Thirty strongest SURF features in I2');
答案 0 :(得分:2)
您收到该错误是因为您的MATLAB发行版中不存在detectSURFFeatures
。您必须至少拥有R2011b,就像detectSURFFeatures
可用时一样:http://www.mathworks.com/help/vision/release-notes.html#R2011b
我怀疑你有一个比R2011b更旧的MATLAB版本,所以如果你想让自己很容易,你需要升级你的MATLAB版本。但是,如果我可以提出建议,请按Kota Yamaguchi建议mexopencv
项目:http://kyamagu.github.io/mexopencv/
他编写了可以直接与MATLAB接口的OpenCV包装器,因此您可以实际调用OpenCV的SURF功能检测和MATLAB匹配方法,但是您需要安装OpenCV来实现这一点。让它工作会有一些工作,但如果你不想升级你的MATLAB版本,这是我可以提供的一个解决方案。
祝你好运!