在Matlab

时间:2015-06-28 12:35:33

标签: matlab

我正在尝试绘制灰度图像的强度与像素的(x,y)坐标的3D图。我编写了以下代码,但它似乎不起作用:

f=imread('peppers.png');
f=rgb2gray(f);
[x,y]=meshgrid(1:1:384,1:1:512);
mesh(x,y,f(x,y))

报告的错误是:

  

???超出了程序允许的最大可变大小。

注意:图片的尺寸为< 384x512 uint8>

请告诉我我的代码有什么问题以及如何绘制强度?

1 个答案:

答案 0 :(得分:2)

您的代码中存在两个问题:meshgrid命令会创建两个大小为512 x 384而不是384 x 512的矩阵。只需切换meshgrid的两个输入即可解决此问题。然后,您无需在f(x,y)内拨打mesh。正确的语法是:

mesh(x,y,f)

其中xy是您创建的矩阵,f是图片。 这样,图就会正确生成。

注意:您也可以致电

mesh(f)

因为MATLAB可以自动生成向量xy