what does the minus value of pixel mean in MRI

6 views (last 30 days)
I got one MRI image. when I read it into MATLAB with the function 'dicomread', I found that the pixel format was int16, some pixels got a minus value. how can I convert the pixel into 0-255?
  1 Comment
Walter Roberson
Walter Roberson on 6 Nov 2015
What is the Photometric Interpretation set to?
Also is the negative after the rescale? CT images for example often want to use Hounsfield units, which can be negative; see https://www.medicalconnections.co.uk/kb/Hounsfield_Units

Sign in to comment.

Accepted Answer

Image Analyst
Image Analyst on 6 Nov 2015
Try using mat2gray():
image8bit = uint8(255*mat2gray(double(image16bit)));
This will scale it from min (the negative number) to max -> [0,255]. If you want to get rid of negative numbers in advance, do this:
image16bit(image16bit < 0) = 0;
image8bit = uint8(255*mat2gray(double(image16bit)));
  2 Comments
song
song on 6 Nov 2015
thanks for your answer . but I get another questions why we get minus value in MRI data . what does that mean ? you know that the intensity of one pixel usually is a positive value.
Image Analyst
Image Analyst on 6 Nov 2015
I have no idea why the data is signed instead of uint16, and why there are negative values. Perhaps ask the radiologist who created it.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!