【问题标题】:Plotting image intensity vs (x,y) in Matlab在 Matlab 中绘制图像强度与 (x,y) 的关系
【发布时间】:2015-06-28 12:35:33
【问题描述】:

我正在尝试绘制灰度图像强度与像素的 (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))

报错是:

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

注意:图片尺寸为

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

【问题讨论】:

    标签: matlab


    【解决方案1】:

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

    mesh(x,y,f)
    

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

    注意:你也可以直接调用

    mesh(f)
    

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

    【讨论】:

    • 它给出了另一个错误:“数据尺寸必须一致”
    • 你切换meshgrid的输入了吗,所以现在是meshgrid(1:1:512,1:1:384);
    • 是的,仍然是“警告:CData 必须是双精度或单精度,除非它仅用作纹理数据”
    • 您是否尝试过将f 转换为双倍?虽然这在我的 R2014b 机器上不需要...
    • @hbaderts - 我创建了一个 MATLAB 聊天室,供我们讨论与 MATLAB 相关的事情,或者用于跨越单个评论限制的讨论。有时间就来找我们吧! - chat.stackoverflow.com/rooms/81987/matlab
    猜你喜欢
    • 1970-01-01
    • 2016-03-26
    • 2011-03-11
    • 2016-02-29
    • 2014-04-13
    • 1970-01-01
    • 2014-08-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多