阅读图像,但显示奇怪的颜色

时间:2014-01-16 08:18:49

标签: image matlab

我读过这样的图像

a = imread('test.jpg');
image(a)

test.jpg是什么:

Original image

但是在图像功能之后

结果是:

Obtained image

我不知道为什么会这么说?

因为我想裁剪一些部分,所以我必须看到显示的图像。

如何通过图像显示人脸来修复它?

2 个答案:

答案 0 :(得分:1)

您正在使用image命令显示图像。从here:“图像通过将矩阵中的每个元素解释为图形颜色图的索引或直接作为RGB值来创建图像图形对象”。由于您提供的是二维矩阵,因此每个元素都被解释为图形色彩映射的索引。您可以使用

查看图形的色彩映射
 c_map=colormap;

此外,轴设置为方形,因此您可以看到圆形而不是椭圆形。使用imshow(a,[])根据需要显示灰度图像。

答案 1 :(得分:0)

您的图像数据可能位于颜色地图中。试试[a,cmap] = imread(...)。如果cmap不为空,acmap的索引,cmap包含实际颜色。 使用img = cat(3,cmap(a,1),cmap(a,2),cmap(a,3))获取您的图片,并使用image(img)进行展示。

请注意,在这种情况下使用imagesc可能会产生误导,因为在执行imagesc(a)时,它仍会显示与您的图像相似的内容。这是因为不同的像素颜色与a中的不同索引值相关联。