Image Normalization in the range 0 to 1
364 次查看(过去 30 天)
显示 更早的评论
How to normalize an image in the range 0 to 1?
0 个评论
采纳的回答
Image Analyst
2013-12-12
Use mat2gray() or im2double(). Hopefully you have the image processing Toolbox.
normImage = mat2gray(yourImage);
normImage = im2double(yourImage);
Also look at stretchlim() and imadjust().
10 个评论
Image Analyst
2021-9-23
If you really want them to have fractional values between 0 and 1, that's not a standard image format so you'll just have to save them with
save('myFile.mat', 'yourImageVariable');
to save them in a .mat file.
更多回答(3 个)
mutant
2019-10-6
Old question but as of R2017b, rescale does exactly this.
B = rescale(A); % Normalizes image (0 to 1, by default)
You can even use this to scale to uint8, for example:
B = rescale(A,0,255); % Normalizes image to [0 255]
Documentation here:
0 个评论
Azzi Abdelmalek
2013-12-12
编辑:Azzi Abdelmalek
2013-12-12
If im is your image
im=(im-min(im(:)))/(max(im(:))-min(im(:)))
1 个评论
Jos (10584)
2013-12-12
I suggest to do this in two steps to avoid the calculation of MIN twice ...
IM = IM - min(IM(:)) ;
IM = IM / max(IM(:)) ;
Sajid Khan
2014-2-6
编辑:DGM
2023-2-13
function image_normalized = imnormalize( image_orig, min_norm, max_norm)
val_max = max(image_orig(:));
val_min = min(image_orig(:));
range = val_max - val_min;
image_normalized = (image_orig - val_min) ./ range; % Then scale to [x,y] via:
range2 = max_norm - min_norm;
image_normalized = (image_normalized*range2) + min_norm;
end
In this function, you can set min_norm = 0 and max_norm = 1 to normalize image to a scale of 0 to 1. If you have any other questions to ask, then you are welcome. I always use this function for normalization purpose. It even works if you have to increase the scale length.
2 个评论
Image Analyst
2014-2-6
Your function basically does the same thing as the built in function mat2gray().
DGM
2023-2-13
Rather, mat2gray() only allows the specification of the input levels, assuming the output levels are [0 1]. Sajid's function allows specification of the output levels, while using image extrema as the input levels.
So in that sense, it's more like rescale(), same syntax and everything.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Convert Image Type 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!