【问题标题】:Matlab: Plot a line over an image plotMatlab:在图像图上绘制一条线
【发布时间】:2020-08-19 15:44:52
【问题描述】:

我想在 Matlab 中的图像图上绘制线图

首先我绘制图像数据

figure(1); clf;
imagesc(t); colorbar
hold on;
axis tight

然后是线图

line(ysum,y,'Color','red')
hold off;

但是线图会删除图像并将背景设置为白色。 如何在图像上绘图?

【问题讨论】:

  • ysumy 可能是图像域之外的位置,导致轴限制发生变化。您可能在其中一个中具有较大的值,并最终在图的一角出现一个小图像。但是,请参阅minimal reproducible example,如果没有它,您的问题将无法回答。

标签: matlab plot


【解决方案1】:

您的代码没有错,但它不是最小的可重现示例,因为您尚未定义 t, y, ysum。当您调用imagesc(t) 时,行和列将是t 的索引。换句话说,它与调用imagesc([1, size(t,2)], [1, size(t,1)], t) 相同。如果t 很小(比如 10 x 10)但y,ysum 的元素很大(例如 > 1000),那么 10 x 10 图像仍然存在,但它会被挤到角落里。几乎看不见。

所以你需要确保y, ysum, t 的范围对齐。快速解决方法:

xidx = [min(ysum), max(ysum)];
yidx = [min(y), max(y)];
imagesc(xidx, yidx, t);

【讨论】:

  • 我的回答和第一条评论一样,但是我还没看到就发了!
  • 确实问题出在 ysum 向量中的大值。这样就解决了问题:ysum = sum(t,2); ysum = ysum/max(ysum(:))*100;
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-08-21
  • 2015-09-01
  • 2014-03-15
  • 1970-01-01
  • 2014-09-06
  • 2011-01-28
  • 1970-01-01
相关资源
最近更新 更多