how can save some 3d images in a 4d array?

7 views (last 30 days)
how can save some 3d images in a 4d array? I use this code:
if true
folder = 'C:\Users\sara\Desktop\inodastnazan\azmayeshi';
files = dir([folder '\*.tiff']);
array4d = zeros(512, 512,3, numel(files));
for slice = 1:numel(files)
filename = [folder files(slice).name];
array4d(:,:,:,slice) = strcat(filename) ;
end end
but I have this error
if true
Subscripted assignment dimension mismatch.
end
.... thanks

Accepted Answer

Image Analyst
Image Analyst on 8 Oct 2014
You're not even reading in the images. You're just concatenating filename strings. Try inserting images.
folder = 'C:\Users\sara\Desktop\inodastnazan\azmayeshi';
files = dir(fullfile(folder, '*.tiff'));
array4d = zeros(512, 512,3, numel(files));
% Loop over filenames, inserting the image.
for slice = 1 : length(files)
filename = fullfile(folder, files(slice).name);
thisImage = imread(filename);
[rows, columns, numberOfColorChannels) = size(thisImage);
if numberOfColorChannels < 3
message = 'Error: Image is not RGB Color!';
uiwait(warndlg(message));
continue;
end
if rows ~= 512 || columns ~= 512
message = 'Error: Image is not 512x512!';
uiwait(warndlg(message));
continue; % Skip this image.
end
% Image is okay. Insert it.
array4d(:,:,:,slice) = thisImage;
end

More Answers (0)

Categories

Find more on Images in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!