我正在使用以下代码创建包含图像的GUI:
try
Imagenamehere = imread('Imagenamehere.jpg');
axes(handles.Logo)
image(Imagenamehere)
set(gca,'xtick',[],'ytick',[])
catch
msgbox('Please download all contents from the zipped file into working directory.')
end
图像显示但由于某种原因完全着色为蓝色,就像穿过蓝色滤镜一样。我不认为上传图像是明智的,但它是一个黑白色的简单徽标。
任何人都知道是什么原因引起的?
答案 0 :(得分:2)
检查图像的大小,类型(可能是uint8
)和范围。听起来出于某种原因,您的图像以colormap
显示为jet(默认值),也可能是您的范围不是MATLAB所期望的(例如0到1而不是0到255),导致所有值相对较低(喷射色图上的蓝色)。
"黑白"只是一种解释只包含两种颜色的图像文件的方法。当您将数据传递到image
等显示函数时,MATLAB会做出一些假设。如果您没有指定色彩映射和图像数据范围,它将根据数据类型等内容进行猜测。
一种可能性是您的徽标文件是索引图像。在这些情况下,您需要这样做:
[Imagenamehere map] = imread('Imagenamehere.jpg');
colormap(map);