0

我试图弄清楚为什么我的黑白图像(其值为 0-1.0)不会被 image(my_img) 调用正确缩放。

我尝试了以下方法:

  • 设置颜色图([0:0.0039:1; 0:0.0039:1; 0:0.0039:1]')
  • 将 gca 的 clim 设置为 [0 1]
  • 将 DataAspectRatio 设置为 [1 1 1]
  • 将 ClimMode 和 DataAspectRatioMode 更改为手动

我究竟做错了什么?Matlab 文档指出图像可以来自 [0 1.0] ... 为什么 image() 不能正确显示?

Imshow 效果很好,但出于个人原因,我正在尝试使用图像功能获得与 imshow 相同的图像。

康斯坦丁

4

2 回答 2

1
h=image(rand(250, 250));
set(h, 'CDataMapping', 'scaled');

imagesc()自动执行此操作,实际上是源代码为imagesc我提供了正确的属性名称以供使用。

于 2012-06-07T19:27:48.737 回答
0

image文档中(请参阅标题“提示”下的表格),您可以使用imageRGB 值数组或索引颜色图进行调用,后者似乎就是您正在做的事情。从同一张表中,它指出索引颜色图:

存储为范围颜色图中的二维 (m×n) 整数[1, length(colormap)];数组是范围 [0, 1] 中的 m×3 浮点值数组。

这里的关键点是图像数组中的值my_img应该在范围内1256我从“设置”行中猜到了这一点colormap([0:0.0039:1; 0:0.0039:1; 0:0.0039:1]',您可能需要更改它)。但是,您的值在 0 到 1 范围内,它们都被映射到颜色图中的第一种颜色,我认为它是(0, 0, 0)黑色。

于 2012-06-07T19:29:14.190 回答