MATLAB:从uint8图像的单元格数组创建影片

时间:2016-07-19 15:58:43

标签: image matlab video image-processing movie

我有20个类型为uint8的灰度图像,存储在名为flow8的1x20单元阵列中。我想从他们那里制作一部电影。我目前的做法是:

% Generate images.
for i = 1:20
    flow8{i} = round(rand(100, 100)*255+1);
end

% Get into 4-D shape.
n = size(flow8,2);
matSize = size(flow8,1);
imageStack = reshape(cell2mat(flow8),matSize,[],n);
imageStack = permute(imageStack, [1 2 4 3]);

% Create movie.
mov = immovie(imageStack, gray)
implay(mov)

在这里,我添加了一个图像生成循环,以使代码可编辑。

使用此代码,生成的影片只包含一条水平线。

要获得合适的电影,我需要做什么?或者有更好的方法从我的图像制作电影吗?

我在Windows 7上使用MATLAB R2015b学术。

1 个答案:

答案 0 :(得分:1)

如果仔细查看代码,{ "type": "motors", "id": "1", "attributes": { "name": "V8", "working": true } } flow8。在进行重新整形时,使用以下代码计算1 x 20

matSize

那么,这个值是matSize = size(flow8, 1) ,因为正如我们所说的那样,单元格数组的形状是1

相反,您可能想要每个图像的大小。在这种情况下,您需要索引单元格数组以获取值,然后获取的大小

1 x 20

这可能是另一种(更短)的方法,它使用matSize = size(flow8{1}); 沿第四维连接。然后,您将避免所有catreshape操作。

permute