how to convert the pixel values of the image in the range of (0-255) into (0-1)?

23 views (last 30 days)
Hi i have to convert the image pixel values in the range of (0-255) into (0-1) Is there any function or program available?

Answers (3)

Azzi Abdelmalek
Azzi Abdelmalek on 28 Feb 2013
Edited: Azzi Abdelmalek on 28 Feb 2013
im1=imread('yourfile');
b=linspace(0,1,255);
im2=arrayfun(@(x) b(x+1),im1)
  4 Comments
Jan
Jan on 28 Feb 2013
Surprising. Then I'd suggest:
im2 = reshape(b(im1(:) + 1), size(im1));
But this looks less attractive, of course. Anyway, it is still faster.
Azzi Abdelmalek
Azzi Abdelmalek on 28 Feb 2013
Edited: Azzi Abdelmalek on 28 Feb 2013
Surprising. You are right, I messed up, in fact I've tried b(im) instead of b(im+1), did not even read the error message, thinking it was caused by the matrix dimension. im contains 0 that causes the error. b(im1) worked for a tif image that does not contains a 0

Sign in to comment.


Jan
Jan on 28 Feb 2013
Edited: Jan on 28 Feb 2013
imageUINT8 = randi([0, 255], 640, 480);
imageDOUBLE = image / 255;
See also im2double.

Image Analyst
Image Analyst on 28 Feb 2013
Yes, there is a built-in function. It is called mat2gray().
normalizedImage = mat2gray(grayLevelImage);

Categories

Find more on Convert Image Type in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!