Multiframe Image arrays 4-D DICOM
Show older comments
Hello! I need to work with collections of images related by time or view, such as magnetic resonance imaging (MRI) slices or movie frames. (attached)
I need to get the ROI of the image but in different times. So, I have a multi frame image (4D uint16 DICOM) with 36 frames and I also have my code but it only shows the sum of the 36 frames...
P.S. It is an image of a 3D SPECT scan I need to check the values of ROI in different times to get the intensities/ countings, so that I can get the curve Activity vs Time.
Could please somebody help me?
%%OPEN MULTI FRAME
image_data =dicomread('FLOW001_DS.dcm');
sum2d = sum(image_data,4);
sum2d=256-sum2d;
imshow(sum2d,[])
%Otsu to the generated image
A=otsu(sum2d,2);
% testar com outros valores (3 por exemplo);
%Cany countour to select the ROI
BW1 = edge(A,'Canny'); imshow(BW1)
%Sum original image+ cany ;
sumf=imadd(sum2d,im2double(BW1).*250);
imshow(sumf,[])
imagesc(sumf)
%binary image
umbral=graythresh(sumf);
imag_bw=im2bw(sumf,umbral);
imshow(imag_bw)
%object identification in image
imag_bw_label=bwlabel(imag_bw);
imshow(label2rgb(imag_bw_label));
propriedades= regionprops(imag_bw_label);
6 Comments
Margarida Moura
on 19 Jun 2018
Margarida Moura
on 19 Jun 2018
Bader
on 17 Jan 2025
Hi Margarida,
I hope this finds you well
Have you found the answer to this? I'm facing the same issue. I have a 4D uint16 DICOM folder that I need to fuse it with a another DICOM folder (CT)
Cris LaPierre
on 17 Jan 2025
What do you mean by fuse? If you are trying to align images from different modalitiles, you need to register your two volumes. See the Register Mulitmodal 3-D Medical Images doc page.
This recent post might also be helpful: https://www.mathworks.com/matlabcentral/answers/2172469-how-to-rotate-image-3d
MathWorks recently launched an Medical Image Processing course on Coursera. Module 2 discusses registration.
Thank you, Crise, for your answer. By "fuse," I mean in the context of multi-modal imaging, such as PET-MR.
My DICOM image in multi frame images (4D uint16 DICOM) with 48 frame and the CT in anotther folder in 3D (512x512x130 uint16).
I have tried this the the next code and i got this erorr [[Unable to perform assignment because the size of the left side is 128-by-128 and the size of the right side is 128-by-128-by-1-by-128]]
......................................................................................
imgSize = [info.Rows, info.Columns, 1, numFiles];
dicomImages = zeros(imgSize, 'like', dicomread(fullfile(dicomFolder, dicomFiles(1).name)));
% Read each DICOM file
for i = 1:numFiles
dicomImages(:,:,1,i) = dicomread(fullfile(dicomFolder, dicomFiles(i).name));
end
................................................................................................
Is there any code available to combine my data?
Many Thanks
Cris LaPierre
on 18 Jan 2025
Try using medVol = medicalVolume(dirname)
Answers (0)
Categories
Find more on DICOM Format 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!