【问题标题】:Values of points (x;y) as a grayscale image点 (x;y) 的值作为灰度图像
【发布时间】:2016-05-23 11:00:49
【问题描述】:

我正在使用 matlab,并且我有两个坐标为十进制值的向量 (size(x)=size(y)=[1 98])

    x=[-4.5 -4.5 ... 4.5];
    y=[-4.5 -3.5 ... 4.5];

    plot(x,y,'+')

我有一个带有每个点的十进制值的向量 (x;y) (size(v)=[98 1])

    v=[1.4350 ...].

有什么方法可以将我的数据绘制为灰度图像?

【问题讨论】:

  • 首先,您必须使用reshape() 将向量v 重塑为矩阵形式,然后使用mat2grey() 将此类矩阵转换为灰度图像。尽管似乎缺少 2 个点(图的顶部),但这永远不会允许您创建这样的矩阵,因为图片是像素矩阵,并且该矩阵可以是矩形或正方形。
  • 缺失的点需要用零填充,仅此而已;即使用zeros(100) 启动您的向量
  • 这个过程非常简单:1)用0填充两个缺失点; 2)以矩阵形式V=reshape(v,10,10)重塑v; 3) 灰度转换VGS=mat2gray(V); 4) 显示图片figure; imshow(VGS);
  • 所以flipud( reshape(v, 10, 10) ) 会在您将缺失的两个点添加为向量v 中的零时生成图像矩阵。

标签: matlab grayscale


【解决方案1】:

问题是您的数据不是“正方形”,因此您可以:

  1. 以某种方式填充两个缺失点,然后imagesc(reshape(v,10,10)) 绘制它,或者
  2. 从这些点中插入图像:

    step=0.2; %//whatever you want [x1,y1]=meshgrid(-5:step:5,-5:step:5) img=interp2(x,y,v,x1,y1); imagesc(img);%// or imshow(img,[])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-11
    • 1970-01-01
    • 1970-01-01
    • 2018-11-28
    • 2021-05-16
    • 1970-01-01
    • 2016-12-03
    • 1970-01-01
    相关资源
    最近更新 更多