我正在尝试绘制灰度图像的强度与像素的(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>
请告诉我我的代码有什么问题以及如何绘制强度?
答案 0 :(得分:2)
您的代码中存在两个问题:meshgrid
命令会创建两个大小为512 x 384
而不是384 x 512
的矩阵。只需切换meshgrid
的两个输入即可解决此问题。然后,您无需在f(x,y)
内拨打mesh
。正确的语法是:
mesh(x,y,f)
其中x
和y
是您创建的矩阵,f
是图片。
这样,图就会正确生成。
注意:您也可以致电
mesh(f)
因为MATLAB可以自动生成向量x
和y
。