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!