MATLAB: Hi, how can i scale the image data to 0 and 1

imageimages

i am working on greyscale images, i have to scale the data between 0 and 1, and but dividing the image data on 255 gives only 0 or 1, how can i get the actual vale after division.

Best Answer

If you divide an uint8, you get an uint8. Therefore either convert the matrix to double at first:
gray_d = double(gray) / 255;
But for productive work and if you have the image processing toolbox, use Thorsten's suggestion. im2double checks the type of the input and considers, if the input is a uint16 or double already.