我有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.
任何创建此垫的方法。
答案 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]