“数据维度必须一致”错误

时间:2011-05-14 19:54:08

标签: matlab

im = im2double(imread('rice.png'));

[X Y]= meshgrid(1:size(im,1),1:size(im,2));

surf(zeros(size(im)),X,Y,im,'EdgeColor','none');

当我运行这个脚本它工作得很好,但当我试图将图像更改为RGB图像时,它给了我这2个错误

??? Error using ==> surf at 78 Data dimensions must agree.

Error in ==> CoOrdinating at 6 surf(zeros(size(im)),X,Y,im,'EdgeColor','none');

我试图将图像转换为灰度,但它不能与我合作并给我同样的错误

任何帮助?

1 个答案:

答案 0 :(得分:0)

我有一种有趣的感觉,你忘记将灰度图像传递给其余的功能,因为我在第一次尝试运行此代码时也这样做了:P

im = im2double(imread('rice.png'));

if (isrgb (im))
    im2 = rgb2gray (im);
else
    im2 = im;
end

[X Y] = meshgrid (1:size(im2,1), 1:size(im2,2));
surf(zeros (size(im2)),X,Y,im2,'EdgeColor','none')

这对我有用(带有rgb图像和灰度图像)