【问题标题】:matlab render graphical objects to a bitmap in memorymatlab 将图形对象渲染到内存中的位图
【发布时间】:2014-08-18 20:08:11
【问题描述】:

我认为这应该很简单,但我无法正确...

我在一个图形中绘制了几个图形对象,现在我想要一个图形的位图,它保持对象上的位置和图形的尺寸。

举一个非常简单的例子,如果我在坐标 (0,0) 和 (200,200) 中绘制 2 个点,我希望渲染输出一个大小为 (200,200) 的矩阵,其中像素 (0,0) 和 (200,200)灰度级为 255,其余像素为零(这是在每像素 8 位灰度的情况下,尽管 3 我更喜欢能反映原始图中显示的对象颜色的彩色位图)

谢谢

【问题讨论】:

  • 不明白。您的意思是使用“打印”命令吗?是这个意思吗?
  • @Benoit_11 任何可以将我的图像作为矩阵的命令都可以。 “打印”命令可以做到这一点吗?我的意思是不写入文件或剪贴板?

标签: image matlab rendering


【解决方案1】:

为了回答我自己的问题,这就是我将带有图形对象的图形渲染到内存中的位图并保持其比例的方法:我使用了getFrame,然后将结果调整为轴的大小。如下:

% plot stuff on the current axes, then...

set(gca, 'ydir', 'reverse');
xLim = get(gca, 'XLim');
yLim = get(gca, 'YLim');
rendered = getframe(gca);
imageMat = imresize(rendered.cdata, [floor(yLim(2)), floor(xLim(2))]);

这里对图像进行了两次采样,这在处理时间方面效率低下,并且图像质量有所下降。就我的目的而言,这没关系,但单样本解决方案仍然会很好......

【讨论】:

  • 关于你的解释:是getframe,不是getFrame
猜你喜欢
  • 2011-05-07
  • 2016-08-19
  • 1970-01-01
  • 2016-07-23
  • 2010-11-19
  • 2011-01-26
  • 1970-01-01
  • 1970-01-01
  • 2011-12-08
相关资源
最近更新 更多