以mat格式创建rgb图像数组?

时间:2014-04-07 05:28:55

标签: image matlab

我有60张尺寸为250x250x3的图片。现在我想将它添加为一堆图像。 即,我想创建一个4-D数组,它以mat文件的形式保存所有图像。因此,它的尺寸应为250 x 250 x 3 x 60。

我尝试了以下内容。但是当我显示图像时,它充满了白色,只有一些小标记。这是代码。

X=zeros(250,250,3,60)
for i=1:60
X(:,:,:,i)=image1 and so on on every every loop.

任何创建此垫的方法。

1 个答案:

答案 0 :(得分:1)

问题:

您的图像似乎存储为uint8类型。当您预先分配X时,您将其定义为double(默认情况下) 当Matlab显示图像时,uint8类型图像和double类型图像之间存在差异:对于uint8,Matlab期望强度介于[0..255]之间。但是,当谈到double类型图像时,Matlab期望值介于[0..1]之间。因此,将uint8图像值分配给double类型,您会得到一个双重类型的图像,其值在[0..255]范围内--Matlab显示为白色。

解决方案:

有几种方法可以解决您的问题:

  • X定义为uint8类型

    X =零([255,255,3,60],'uint8') 这将节省内存,因为uint8需要单字节,而double需要8。

  • 或者,您可以使用double功能将图像转换为im2double,将数据类型的强度范围更改为[0..1]