Multiframe Image arrays 4-D DICOM
显示 更早的评论
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 个评论
Margarida Moura
2018-6-19
Margarida Moura
2018-6-19
Bader
2025-1-17
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
2025-1-17
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
2025-1-18
Try using medVol = medicalVolume(dirname)
回答(0 个)
类别
在 帮助中心 和 File Exchange 中查找有关 DICOM Format 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!