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

3 ビュー (過去 30 日間)
maxina dialin
maxina dialin 2013 年 2 月 28 日
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);

Community Treasure Hunt

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

Start Hunting!

Translated by