[英]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.