gpt4 book ai didi

image - 使用 Image.CData 在 MATLAB 中快速重绘图像

转载 作者:行者123 更新时间:2023-12-02 16:17:47 27 4
gpt4 key购买 nike

我想在 MATLAB 中绘制一次图像,然后(非常)频繁地更新并(较少)重新绘制图像。我的图像是一个经过更新和重新绘制的矢量。为了显示此图像,我使用 I = imagesc(reshape(data, nVoxels)) 进行绘制,并使用 I.CData(:) = data 进行更新。 (重画是单独处理的。)这工作得很好。

现在,为了与 x-y 坐标系(x 水平,y 垂直 - 非常标准)相对应,其中 reshape(data, nVoxels) 的第一个维度是 x,第二个是 y,我需要这样画:

I = imagesc(reshape(data, nVoxels)');
axis('xy');

但是现在如何快速更新图像数据呢?

到目前为止,我发现我需要做

I.CData = reshape(data, nVoxels)';

但我更愿意像以前一样,更新 CData,而无需重新分配,也无需转置数据。

这可能吗?我对经常循环更新特别感兴趣;重绘是使用计时器独立处理的。

最佳答案

可以通过在创建图像以翻转图像时设置 x 和 y 限制并旋转轴来避免转置:

I = imagesc([nVoxels(2) 1], [1 nVoxels(1)], reshape(data, nVoxels));
camroll(90);

然后使用

I.CData(:) = data;

再次。

但是,与使用 drawnow() 更新图形相比,转置时间可能可以忽略不计。

关于image - 使用 Image.CData 在 MATLAB 中快速重绘图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33834523/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com