How to change the pixel value int16 to new value?
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
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 Kommentare
Antworten (1)
Image Analyst
am 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 Kommentare
Siehe auch
Kategorien
Mehr zu Convert Image Type finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!