编写一组图像

时间:2013-11-12 19:00:55

标签: arrays image matlab image-processing

我想在MATLAB中创建一个图像数组(2D uint8数组形式的图像)。我想用它们来编写.jpg文件,或用于imshow(基本上从3D整数数组中访问每个2D)。我不能将它们用于任何目的。请帮忙。 这是一个示例代码:

for k =1:no_images
    for i=1:Height
        for j=1:Width
            image(k,i,j) = uint8( k+i+j ) ;
        end
    end
    imshow( image(k) );
end

3 个答案:

答案 0 :(得分:2)

这将是工作。

Img = image(k,:,:);
imshow(Img);

编辑

作为这样的3D阵列,你只有灰度图像,但是如果你有一个包含颜色通道的4D阵列,它就是一样的。

Img = image(k,:,:,:);
imshow(Img);

<强> EDIT2

在图片之前,您的图片为1xHeightxWidth,因此您只需要

Img = reshape(Img,[Height Width]); 

答案 1 :(得分:1)

您可能意味着要为这些图像预分配内存,因为imshow只显示它们,而image(k,i,j) = uint8( k+i+j )只是将一个数字写入到响应循环的3D数组的每个像素中(并不是有道理)

只需使用

 image=zeros(N,M,L,'uint8');

其中N,M,L是三维维度,用于创建零的3D数组。然后image(:,:,n)=...将第n个图像分配到数组中。

答案 2 :(得分:1)

这可能有所帮助:

img = cell(m, n);
img{i, j} = Image;