Converting 3d image stack to a 1* 1 cell array

I need to create a 1*1 cell array which has a 3 dimensional (1024*1024*80) array of gray scale values obtained from my image stack.
This is the code I have so far and I am not sure why I cant capture the 3rd dimension but when I run it I can capture 1024*1024 but not the 80 in the z dimension. How can I fix that?
if true
%
clear all
clc
folder = 'E:\Users\bvendra\Desktop\4.13umgs3-14c2before20,30, almost40\20\tif';
D = 'E:\Users\bvendra\Desktop\4.13umgs3-14c2before20,30, almost40\20\tif';
dCell = dir([D,'.tif']);
% NOTE: CHANGE FILETYPE AS APPROPRIATE FOR EACH SEQUENCE (.png, *.bmp, or *.jpg)
N = 80
numRows = ceil(sqrt(N));
IMAGES = cell(1,N);
FNAMEFMT = '%d.tif';
% Load images
for i=1:N
a = imread(sprintf(FNAMEFMT, i));
end
a={a};
save vol01
end

 採用された回答

Image Analyst
Image Analyst 2016 年 4 月 19 日
編集済み: Image Analyst 2016 年 4 月 19 日

0 投票

You keep overwriting the "a" variable over and over again. To put it into slices, do this
for k = 1 : N
a2d = imread(sprintf(FNAMEFMT, k));
if k == 1
a3d = a2d;
else
a3d = cat(3, a3d, a2d);
end
end
cellArray = {a3d};
By the way, sticking the 3d array into a cell is dumb.

1 件のコメント

bhavya vendra
bhavya vendra 2016 年 4 月 20 日
Thank you!! you are a lifesaver! I was trying to put it in a cell because a different code I am trying to use for my research requires it that way :/

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeConvert Image Type についてさらに検索

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by