Converting 3d image stack to a 1* 1 cell array
7 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
bhavya vendra
le 19 Avr 2016
Commenté : bhavya vendra
le 20 Avr 2016
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
0 commentaires
Réponse acceptée
Image Analyst
le 19 Avr 2016
Modifié(e) : Image Analyst
le 19 Avr 2016
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.
Plus de réponses (0)
Voir également
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!