尝试使用matlab绘制具有不同大小的2个图像时出错

时间:2017-01-31 04:18:40

标签: image matlab plot surf

我需要在一张图中绘制2张图像,然后在两张图像上显示SURF找到的兴趣点:  图1:尺寸[6113x5693x3]  图片2:尺寸[4896x3744x3] 当试图用这段代码在一个图中绘制两个图像时:

I = zeros([size(I1,1) size(I1,2)*2 size(I1,3)]);
I(:,1:size(I1,2),:)=I1;
I(:,size(I1,2)+1:size(I1,2)+size(I2,2),:)=I2;
figure, imshow(I); hold on;

并用以下方式显示每个人的兴趣点:

plot([Pos1(:,2) Pos2(:,2)+size(I1,2)]',[Pos1(:,1) Pos2(:,1)]','-');
plot([Pos1(:,2) Pos2(:,2)+size(I1,2)]',[Pos1(:,1) Pos2(:,1)]','o');

我收到此错误,我不知道如何修复:

Subscripted assignment dimension mismatch.

欢迎任何建议!

1 个答案:

答案 0 :(得分:1)

逐行浏览。错误发生在第3行。您正在尝试将I2(尺寸为4896x3744x3)分配给I的选择部分,该部分具有不正确的第一维(因为I的第一个维度与I1相同,而不是I2)。

size(I(:,size(I1,2)+1:size(I1,2)+size(I2,2),:)) = [ 6113  3744  3 ]

size(I2) = [4896 3744  3]