im2double产生不同的结果

时间:2017-04-14 18:42:21

标签: matlab image-processing rgb

我正在尝试为图像获取RGB矩阵。当我的图像是1200x1600时,以下代码

I=imread('testme.jpg');
I=im2double(I);

产生1200x1600x3矩阵,我可以得到RGB矩阵但是当图像是该图像的一部分的屏幕截图时,下面的代码

I=imread('testme_subpic.jpg');
I=im2double(I);

产生167x228矩阵,我无法得到RGB矩阵。

可能,当我写

I=imread('testme.png');
I=im2double(I);

线给我一个1200x1600矩阵。

我的问题是为什么我不能使用png或更小尺寸的jpg获得三维矩阵,我该如何获得它?

1 个答案:

答案 0 :(得分:2)

这完全取决于图像的保存方式。 查看wikipedia以获取有关png像素格式的一些额外信息。为避免此问题,您可以尝试使用MATLAB本身来编写图像,这样就可以控制像素格式(imwrite