how to proceed to find specific pixel value range (suppose 1000 to 1500) in a 512x512 16 uint DICOM image and color this range with yellow or any color ?

2 Comments

Have you tried with dicom read?
Rik
Rik on 8 Jan 2020
Note that in the case of CT you need to account for the RescaleSlope and RescaleIntercept DICOM attributes to scale the data to HU. If you want to do that, you will need to use either the double data type, or int16 to account for negative values.

Sign in to comment.

 Accepted Answer

img = dicomread(FileName);
mask = 1000 <= img & img <= 1500;
R = img; R(mask) = 0; %yellow is 0, max, max
G = img; G(mask) = intmax(class(img));
B = img; B(mask) = intmax(class(img));
RGB = cat(3, R, G, B);
image(RGB)

More Answers (1)

clc
clear all;
close all;
your_dcm=dcmread('dcm/root');
ms=your_dcm>=a&your_dcm>=b;
rl=your_dcm;
fhol=find(ms==1);
rl(fhol)=0;
RGB_IMAGE(:,:,1)=rl;
RGB(:,:,2)=your_dcm;
RGB(:,:,3)=your_dcm;

Categories

Community Treasure Hunt

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

Start Hunting!