sum pixel value in an image.
22 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Ahmad Alenezi
il 20 Set 2019
Commentato: Subhadeep Koley
il 4 Nov 2019
Hi all,
I have a series of images in one dicom file (n =16 images). How can i find frames that contain maximum and minimum sum of pixel values (i.e. signals) and how to find their corresponding values (i.e. the sum of pixel values for the maximum frame and minimum frame) ?
the file is called MUGA.dcm
0 Commenti
Risposta accettata
Divya Yerraguntla
il 23 Set 2019
Hi Ahmad,
Try using the following code to find the sum of pixels of images in DICOM file.
n=[];
% Find sum of images by providing your DICOM file name
for i=1:10
[X, map] = dicomread('DICOM filename','frames',i);
n = [n,sum(X(:))];
end
% Find maximum and minimum summation and indices.
[min, minidx] = min(n);
[max, maxidx] = max(n);
Hope it helps!
1 Commento
Più risposte (3)
Divya Yerraguntla
il 27 Set 2019
Hi Ahmad,
- Yes, the dicomread function returns the pixel values of the file and stores it in variable X in the above mentioned code.
- The variable maxidx in the above code gives the frame number which has the maximum pixel sum value and variable max gives the pixel sum of that frame.
- 'frames' indicates the frames to read, specified as an integer scalar, a vector of integers, or 'all'. When value of 'frames' is numeric, dicomread reads only the specified frame numbers from the image. By default, dicomread reads all frames of the DICOM image.
Hope it helps!
3 Commenti
Divya Yerraguntla
il 4 Ott 2019
Hi Ahmad,
The code and file you have provided are giving the following results.
Are these the expected ones?
0 Commenti
Ahmad Alenezi
il 4 Ott 2019
7 Commenti
Subhadeep Koley
il 4 Nov 2019
I think the DICOM file you are using has less than 16 channels.
However, please use the code below. It is more generalized and will work for DICOM files of any channel length.
clear;close all;clc;
X = rescale(squeeze(dicomread('MUGA1.dcm'))); % Read your DICOM
temp = rescale(X(:,:,1)); % Select one frame from the mask generation
mask = roipoly(temp); % Specify polygon ROI with the interactive polygon selection tool
X_masked = zeros(size(X)); n = [];
for i=1:size(X,3)
for j=1:128
for k=1:128
if(mask(j,k) == 1)
X_masked(j,k,i) = X(j,k,i);
n = [n,sum(X_masked(:))];
end
end
end
end
% Find maximum and minimum summation and indices.
[minVal, minIdx] = min(n);
[maxVal, maxIdx] = max(n);
Hope this helps!
Vedere anche
Categorie
Scopri di più su DICOM Format in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!