在MATLAB中:
我正在使用屏幕截图来生成美国的图像
Google地球。但是,当我将图像读入MATLAB进行绘图时
数据显示图像全白 - 没有红色,绿色或蓝色。
注意:它可以正确显示而无需绘制任何其他数据
并使用imshow。
我的代码是:
I = double(imread('USA.png'));
img = flipdim(I,1)
B = IMPRESIZE(img,[500,500],'nearest')
colormap HSV;
hold on;
....Plot Data....
有没有办法导入图像并在其上绘制散点图数据?
答案 0 :(得分:1)
我相信你的问题来自于将图像转换为双重图像。
当您的图像采用uint8格式时,MATLAB使用0-255作为色标范围。当您的图像采用双色格式时,MATLAB使用0-1作为色标的范围。因此,当您将图像转换为double时,MATLAB使用后一个范围,这意味着R,G或B值大于1的任何颜色都会变为1以用于显示目的(例如,基本上所有像素都显示为白色)
简而言之,将您的第一行代码更改为(无投射)
I = imread('USA.png');
或者,如果您必须将图像转换为double,则可以使用以下函数根据数据范围自动缩放色阶
imagesc(img)