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 个评论

Do I have to use immovie?
Error using immovie>parse_inputs (line 73) Truecolor RGB image has to be an M-by-N-by-3-by-K array.
Error in immovie (line 38) [X,map] = parse_inputs(varargin{:});
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)
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.
MathWorks recently launched an Medical Image Processing course on Coursera. Module 2 discusses registration.
Bader
Bader 2025-1-18
编辑:Bader 2025-1-18
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

请先登录,再进行评论。

回答(0 个)

类别

帮助中心File Exchange 中查找有关 DICOM Format 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by