Converting large stack of 2D images into 3D image: how to improve performance?

3 vues (au cours des 30 derniers jours)
I am working on a large stack of image data from micro CT and im looking to improve the performance of my code. I have around 600-900 500x500px images that im converting into a 3D stack using a for loop
[file,path]=uigetfile(*.tif,'multiselect','on')
[size_x,size_y]=size(file);
for i=1:size_x
images_2D{i} = imread(file{i});
image_stack = cat(3,image_stack,images_2D{i});
end
I'm finding that sometimes it can be bit slow when using the desirable amount of images ~700, but works fine with 20-100 images. Could this process be changed so it can run in parallel as I dont think it can at the moment and keep the images in order.

Réponse acceptée

Subhadeep Koley
Subhadeep Koley le 4 Nov 2019
Hi, instead of for loop you can use parfor loop for better performance. Refer to the code below.
[file,path]=uigetfile('*.*','multiselect','on');
[size_x,size_y]=size(file);
image_stack = [];
parfor i=1:size_y
tempImage = imread(file{i});
image_stack(:,:,i) = tempImage;
end
Hope this helps!

Plus de réponses (0)

Catégories

En savoir plus sur Images dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by