Opening 4D image stack using sliceviewer

17 visualizaciones (últimos 30 días)
Dinil Sasi S
Dinil Sasi S el 4 de Abr. de 2022
Editada: Dinil Sasi S el 4 de Abr. de 2022
Hello all,
I'm working on a 4D MRI brain data set. Data set contains 20 slices (3rd dimension) of brain images acquired at 32 time points (4th dimension) (Image dimension will be I(256,256,20,32)). I want to open this data set as 2 stacks with sliders. One stack should contain first timepoint of all slices (I(:,:,:,1)) and other stack should contain all timepoints of slice opened in the previously mentioned stack. Also, the second stack should be updated in the same figure when I change the slice in the first stack. I have written the code mentioned below using listener to execute this.
global I %%% I is the 4D image
Dyn = squeeze(I (:,:,:,1));
f1 = figure('Name','Slice-wise images (Phases)');
s = sliceViewer(Dyn,'Colormap',jet,'parent',f1);
addlistener(s,'SliderValueChanging',@allevents);
function allevents(~,evt)
evname = evt.EventName;
global I
switch(evname)
case{'SliderValueChanging'}
x1 = mat2str(evt.CurrentValue);
x2= str2double(x1);
T4_1 = squeeze(I(:,:,x2,:));
f5 = figure('Name','Temporal images (Phases)');
s4_1 = sliceViewer(T4_1,'Colormap',gray,'parent',f5);
end
end
The second stack is updating with changing the slices, but everytime when I change the slice, a new figure window is opening. I would like to update it in the same figure itself. In short, whenever I change the slice number in the first stack, the second stack should also get updated in f5.
Could somebody help me to solve this?
Thanks in advance

Respuestas (0)

Categorías

Más información sobre Medical Physics en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by