0

在 MATLAB 中:

我正在应用屏幕截图来生成美国的图像

谷歌地球。但是,当我将图像读入 MATLAB 进行绘图时

它上面的数据图像变成全白——没有红色、绿色或蓝色。

注意:它确实显示正确而无需绘制任何其他数据

并使用 imshow。

我的代码是:

I = double(imread('USA.png'));
img = flipdim(I,1)
B = IMPRESIZE(img,[500,500],'nearest')
colormap HSV;
hold on;
....Plot Data....

有没有办法导入图像并在其上绘制散点数据?

4

1 回答 1

1

我相信你的问题来自将你的形象塑造成一个替身。

当您的图像为 uint8 格式时,MATLAB 使用 0-255 作为色标范围。当您的图像为双精度格式时,MATLAB 使用 0-1 作为色标范围。因此,当您将图像转换为双倍时,MATLAB 使用后一个范围,这意味着 R、G 或 B 值大于 1 的任何颜色都会变为 1 用于显示目的(例如,基本上所有像素都显示为白色)

简而言之,将您的第一行代码更改为 (no cast)

I = imread('USA.png');

或者,如果您必须将图像转换为双精度图像,则可以使用以下函数根据数据范围自动缩放色阶

imagesc(img)
于 2012-09-04T05:04:47.837 回答