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 commentaires

Margarida Moura
Margarida Moura le 19 Juin 2018
Do I have to use immovie?
Margarida Moura
Margarida Moura le 19 Juin 2018
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{:});
Bader
Bader le 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
Cris LaPierre le 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.
MathWorks recently launched an Medical Image Processing course on Coursera. Module 2 discusses registration.
Bader
Bader le 18 Jan 2025
Modifié(e) : Bader le 18 Jan 2025
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

Connectez-vous pour commenter.

Réponses (0)

Catégories

En savoir plus sur DICOM Format dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by