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

19 次查看(过去 30 天)
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?

回答(3 个)

Azzi Abdelmalek
Azzi Abdelmalek 2013-2-28
编辑:Azzi Abdelmalek 2013-2-28
im1=imread('yourfile');
b=linspace(0,1,255);
im2=arrayfun(@(x) b(x+1),im1)
  4 个评论
Jan
Jan 2013-2-28
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 2013-2-28
编辑:Azzi Abdelmalek 2013-2-28
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

请先登录,再进行评论。


Jan
Jan 2013-2-28
编辑:Jan 2013-2-28
imageUINT8 = randi([0, 255], 640, 480);
imageDOUBLE = image / 255;
See also im2double.

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

类别

Help CenterFile Exchange 中查找有关 Convert Image Type 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by