繁体   English   中英

MATLAB imread()无法读取旧图像?

[英]MATLAB imread() can't read old images?

因此,我在使用MATLAB imread()函数时遇到了一个奇怪的问题,即该函数无法读取旧图像(在本例中为2002年的bmp)。 基本上,当我将图像作为参数传递给imread()时,即使图像显然是RGB,它也会将图像识别为灰度。

图像是可从此处下载的标准测试集的一部分。 我正在使用'boy.bmp'图片。

% In Downloads folder    
I_dl = imread('boy.bmp');
whos %to show current variables

输出:

Name                    Size                 Bytes  Class     Attributes
I_dl                  512x768               393216  uint8               

图像大小实际上约为390KB,因此并不是只有一个通道以某种方式加载到工作区中。 看起来它与某些较旧的编码系统有关。

我运行了一个imshow()来检查图像,这就是结果。

临时工作:我将图像导入GIMP,将其保存为xcf(GIMP的本机格式),然后将其导出为bmp。 然后我做了imread()然后是whos 有用。

Name                    Size                 Bytes  Class     Attributes
I                     512x768x3            1179648  uint8               

文件大小也扩展到了1.2MB。 奇怪。

还有其他人遇到同样的问题吗?

问候。

boy.bmp包含索引图像 您应该加载并使用颜色图矩阵:

[I_dl,cmap] = imread('boy.bmp');
imshow(I_dl,cmap);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM