任务:%打开一副低对比度图像,拉伸其图像
%本文使用matlab2021a软件对图像进行处理
clear;
clc;
close all
f=imread("3.jpeg");
g=rgb2gray(f);
or_g=g;
%显示原图像
figure(1)
imshow(g)
%显示图像的灰度分布
figure(2)
imhist(g)
%尝试利用线性分段函数扩大图像的动态范围
figure(3)
g=single(g);
g1=3*(g-100).*(g<125)+(125+(g-125)*((200-75)/(175-126))).*(g>126&g<176)+(175+(g-175)*((200-255)/(200-175))).*(g>175);
g1=uint8(g1);
imshow(g1)
%利用imadjust扩大图像动态范围
figure(4)
g2=imadjust(uint8(g),[0.4,0.8],[]);
imshow(g2)
%利用histeq使图像均衡
figure(5)
g3=histeq(uint8(g));
imshow(g3)
%比较原图和手写的变换
figure(6)
imshowpair(or_g,g1, 'montage');
title('比较原图和手写的变换')
可以看出,利用手写得变换后,画面的对比度有了明显提高
%比较原图和imadjust的变换
figure(7)
imshowpair(or_g,g2, 'montage');
title('比较原图和imadjust的变换')
利用imadjust函数后,原图某些灰色部分变得更加泛白,对比度提升