Linear contrast stretch to image?

조회 수: 38 (최근 30일)
Macy
Macy 2023년 3월 2일
답변: Sarvesh Kale 2023년 3월 6일
Hi, I am very new to image manipulation and MatLab.
I am asked to perform a linear contrast stretching on an image using the defined function histogramlinearstretch. How would I do this? I am not sure what "m" is in this case, and how to apply the function to the image.
Unfortunately I can't upload a .raw file, so the code will show an error, but please ignore that.
infrared = fread( fopen( 'band.raw', 'r'), [1000 1000], '*uint8')';
figure('Renderer', 'painters'),colormap('gray')
imshow(infrared)
function a = histogramlinear(m)
minimum_pixel = double(min(min(m)));
maximum_pixel = double(max(max(m)));
a = uint8(255*(double(m) - minimum_pixel)/(maximum_pixel-minimum_pixel));
end
%Display the image and plot the histogram
colormap('gray'),

답변 (1개)

Sarvesh Kale
Sarvesh Kale 2023년 3월 6일
Hi Macy,
You are trying to perform linear contrast stretch to an image, so basically you are trying to map your intensities [xmin xmax] in image pixels 0 to 255 range which is done by your function histogramlinear, this function will receive the image you are trying to do contrast stretching on an example snippet is shown below
img1 = imread('pout.tif');
minimum_pixel = double(min(min(img1))); % give minimum pixel intensity
maximum_pixel = double(max(max(img1))); % give maximum pixel intensity
img2 = uint8(255*(double(img1) - minimum_pixel)/(maximum_pixel-minimum_pixel));
figure ;
title('Contrast adjustment by linear scaling')
imshow([img1,img2])
You can see that the left image transforms to right image from your code, I hope this helps, please accept the answers if it does
Thank you .

제품


릴리스

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by