图像处理实验灰度变换增强.docx
《图像处理实验灰度变换增强.docx》由会员分享,可在线阅读,更多相关《图像处理实验灰度变换增强.docx(15页珍藏版)》请在冰豆网上搜索。
图像处理实验灰度变换增强
南京信息工程大学实验(实习)报告
实验名称实验三灰度的增强实验日期得分指导教师徐旦华院计算机与软件学院专业计算机科学与技术年级2012班次3姓名宗仰学号20121308097
一、实验目的
1.熟悉matlab图像处理工具箱及直方图函数的使用;
2.了解灰度变换增强的Matlab实现方法;
3.掌握直方图灰度变换方法;
4.理解线性灰度变换的原理,掌握三种灰度变换算法的实现。
二、实验内容
1.线段上像素灰度分布
读入一幅灰度图像(图像自选),采用交互式操作,用improfile绘制一条线段的灰度值。
如:
I=imread('3.jpg');
imshow(I),title('20121308097');
improfile
读入一幅RGB图像(图像自选),用improfile显示所选线段上红、绿、蓝颜色分量的分布。
如:
I=imread('1.jpg');
imshow(I),title('20121308097');
improfile
2.直方图变换
A)直方图显示
在matlab环境中,程序首先读取图像,然后调用直方图函数,设置相关参数,再输出处理后的图像。
I=imread('123.jpg');%读取图像
subplot(1,2,1),imshow(I)%输出图像
title('原始图像20121308097')%在原始图像中加标题
subplot(1,2,2),imhist(I)%输出原图直方图
title('原始图像直方图20121308097')%在原图直方图上加标题
读入图像‘rice.png’,在一个窗口中显示灰度级n=64,128和256的图像直方图。
I=imread('123.jpg');
imshow(I),title('20121308097');
figure,imhist(I,64)
figure,imhist(I,128)
B)直方图灰度调节
利用函数imadjust调解图像灰度范围,观察变换后的图像及其直方图的变化。
I=imread('123.jpg');
imshow(I),title('20121308097');
figure,imhist(I)
J=imadjust(I,[0.150.9],[01]);
figure,imhist(J),title('20121308097');
figure,imshow(J),title('20121308097');
I=imread('4.jpg');
imshow(I),title('20121308097');
figure,imhist(I)
J=imadjust(I,[00.2],[0.51]);
figure,imhist(J),title('20121308097');
figure,imshow(J),title('20121308097');
C)直方图均衡化
在matlab环境中,程序首先读取图像,然后调用灰度均衡函数,设置相关参数,再输出处理后的图像。
I=imread('123.jpg');%读取图像
subplot(2,2,1),imshow(I)%输出图像
title('原始图像20121308097')%在原始图像中加标题
subplot(2,2,3),imhist(I)%输出原图直方图
title('原始图像直方图20121308097')%在原图直方图上加标题
a=histeq(I,256);%直方图均衡化,灰度级为256
subplot(2,2,2),imshow(a)%输出均衡化后图像
title('均衡化后图像20121308097')%在均衡化后图像中加标题
subplot(2,2,4),imhist(a)%输出均衡化后直方图
title('均衡化后图像直方图20121308097')%在均衡化后直方图上加标题
分别对图像‘pout.tif’和‘tire.tif’进行直方图均衡化处理,比较处理前后图像及直方图分布的变化。
I=imread('123.jpg');
imshow(I),title('20121308097');
figure,imhist(I)
J=histeq(I);
figure,imhist(J),title('20121308097');
figure,imshow(J),title('20121308097');
I=imread('4.jpg');
imshow(I),title('20121308097');
figure,imhist(I),title('20121308097');
J=histeq(I);
figure,imshow(J),title('20121308097');
figure,imhist(J),title('20121308097');
3.灰度变换
1、全域线性灰度变换:
选择一副对比度不足的图像,对该图像进行全域线性灰度变换,增强对比度,显示增强前、后的图像以及它们的灰度直方图。
i=imread('4.jpg');
d=double(i);
a=min(min(d));
b=max(max(d));
a1=0.0;b1=255.0;
d2=(b1-a1)/(b-a)*(d-a)+a1;
i2=uint8(d2);
subplot(221),imshow(i),title('20121308097');
subplot(222),imshow(i2),title('20121308097');
subplot(223),imhist(i),title('20121308097');
subplot(224),imhist(i2),title('20121308097');
2、截取式线性灰度变换:
选择一副对比度不足的图像,对该图像进行截取式线性灰度变换,增强对比度,显示增强前、后的图像以及它们的灰度直方图。
i=imread('4.jpg');
d=double(i);
imhist(i);
a=75.0;
b=150.0;
a1=0.0;b1=255.0;
n1=find(i>a&i
n2=find(in3=find(i>b);
d2=d;
d2(n1)=(d(n1)-a)*(b1-a1)/(b-a)+a1;
d2(n2)=a1;
d2(n3)=b1;
i2=uint8(d2);
subplot(221),imshow(i),title('20121308097');
subplot(222),imshow(i2),title('20121308097');
subplot(223),imhist(i),title('20121308097');
subplot(224),imhist(i2),title('20121308097');
3、分段线性灰度变换:
选择一副对比度不足的图像,对该图像进行分段线性灰度变换,增强对比度,显示增强前、后的图像以及它们的灰度直方图。
i=imread('4.jpg');
di=double(i);
imhist(i);
a=min(min(di));
b=max(max(di));
c=120.0;d=150.0;
a1=0.0;b1=255.0;
c1=30.0;d1=171.0;
n1=find(di>=a&din2=find(di>=c&din3=find(di>=d&di
di2=di;
di2(n1)=(di(n1)-a)*(c1-a1)/(c-a)+a1;
di2(n2)=(di(n2)-c)*(d1-c1)/(d-c)+c1;
di2(n3)=(di(n3)-d)*(b1-d1)/(b-d)+d1;
i2=uint8(di2);
subplot(221),imshow(i),title('20121308097');
subplot(222),imshow(i2),title('20121308097');
subplot(223),imhist(i),title('20121308097');
subplot(224),imhist(i2),title('20121308097');
三、思考题
2.直方图的物理含义是什么?
直方图是以图形化参数来显示图片曝光精确度的手段,其描述的是图片显示范围内影像的灰度分布曲线。
它可以帮助分析图片的曝光水平。
3.结合实验内容,定性评价直方图均衡增强效果?
直方图均衡化处理之后,原来比较少的像素灰度会被分配到别的灰度去,像素相对集中,处理后灰度范围变大,对比度变大,清晰度变大。
四、总结与反思
1.通过实验我学会了用直方图反映图片的均衡度。
2.熟悉了图像处理工具箱和直方图函数的使用。
3.理解了灰度变换的原理,学会了matlab实现方法。