How to change the pixel value int16 to new value?
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Dear All,
I have image dicom. as attached. dimension is 128x128, have 45 frame. the type is int16.
I want to convert all the pixel value with new value IMG_cps as code below (the last one).
Anyone can help me?
clc
clear all
close all
Image_name = 'SPECTCTLD_EM_IRNCRR001_DS.dcm'; % add your file name
%% read dicom image
IMG = dicomread(Image_name);
IMG = double(IMG); % chage data type double
%% read dicom information
INFO = dicominfo(Image_name);
% time per projection
Time_per_projection = double(INFO.RotationInformationSequence.Item_1.ActualFrameDuration); % in msec
Time_per_projection = Time_per_projection/1000; % convert to sec
% number of projection
Num_projection = double(INFO.RotationInformationSequence.Item_1.NumberOfFramesInRotation);
% calculate acquisition time
Acquistion_duration = Time_per_projection * Num_projection; % sec
%% calculate cps in each pixel
IMG_cps = IMG/Acquistion_duration;
0 commentaires
Réponses (1)
Image Analyst
le 7 Sep 2023
Not sure I understand this: "I want to convert all the pixel value with new value IMG_cps" but why can't you just say
IMG(:,:) = IMG_cps;
where IMG_cps is your desired new gray level.
0 commentaires
Voir également
Catégories
En savoir plus sur DICOM Format dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!