资源描述:
《DIP实验报告-图像增强.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、课程:数字图像处理课程作业实验报告实验名称:TransformationsandHistogramEqualization实验编号:Proj03-01签名:姓名:学号:截止提交日期:年月日摘要:本次实验学习一些基本的图像增强处理方法,主要有两部分:一是使用常用的灰度变换函数实现增强,实验中使用了对数变换和伽马变换;二是通过直方图均衡处理来增强图像,实验要求编写一个计算图像直方图的程序并显示结果,再使用直方图均衡法处理给定图像。8一、基本原理1、对数变换对数变换通用公式为:s=clog(1+r)式中r为输入灰度级、c为常系
2、数、s为输出灰度级。其图形如下图(1)所示:图1对数曲线图从对数曲线图的形状可以看出,该变换将输入中范围较窄的低灰度值映射为输出中较宽范围的灰度值,相反地,对高的输入灰度值映射到较窄范围内。使用这种类型的变换可以扩展图像中暗的像素值,同时压缩更高灰度级的值。2、伽马变换伽马变换又称幂律变换,基本形式为:s=,图形如图(2)所示:式中:c为比例常系数,r为输入灰度级,γ为指数,s为输出灰度级图2伽马变换曲线图(2)中c=1、γ=0.1,本次实验需要γ<1的伽马变换。8与对数变换的情况类似,γ<1的幂律曲线将狡诈范围的暗色输
3、入值映射为较宽范围的输出值,相反地,对于输入高灰度值时也成立。1、直方图处理直方图是多种空间域处理技术的基础。灰度范围为[0,L-1]的数字图像的直方图是离散函数,其中是第k级灰度值,是图像中灰度为的像素个数。归一化后的直方图表达式为:,其中M、N为整个图像像素的行和列数,即MN为总像素数。直方图均衡技术具有展开输入图像直方图的趋势,均衡后的图像的灰度级跨越更宽的灰度级范围。直方图均衡化的公式为:,其中w是积分假变量,公式右边是随机变量r的累积分布函数(CDF)。其离散形式为:,k=0,1,2…,L-1这样,便可将输入图
4、像中灰度级为的各像素映射到输出图像中灰度级为的对应像素。一、实验结果及讨论1、实验结果实验结果如图(3)~图(6)所示:图(3)是应用变换函数后的输出图像,左为原图、中间位对数变换后图像、又为伽马变换后的图像。图(4)上方为原图与均衡后的图像,下方为各自的直方图。图(5)左为原始直方图,右为直方图均衡变换的函数图。图(6)左为直方图均衡处理后的图像,右是其直方图。图3不同变换后的输出图像8图4原图像、均衡后图像及直方图图5直方图与均衡函数图8图6直方图均衡处理后图像及直方图1、实验讨论从实验结果易得,当使用对数函数和γ<
5、1的幂律函数处理图片fig3.8(a).jpg时,有效的将原图中范围较窄的灰度值映射为输出中较宽的灰度值,从而图像中许多可辨细节更加清晰,对分析图像更加直观。实验结果如图(3)所示,骨折处更加清晰,图(3)中对数函数与幂律函数处理后的图像差不多,然而在测试时将γ变小时,图片会被冲淡,与对数函数处理的结果会有很大差异。这是源于幂律函数本书的特性,当γ值变得越小,曲线左侧会越加垂直,及很小的低灰度值范围会被映射到很大的输出范围。直方图均衡技术可以将图像的直方图展开,使原图像跨越更宽的灰度级,从而增强图像的对比度。从实验结果图
6、(6)可以看出,与原图像相比较处理后的图像许多细节变得更加清晰,其直方图也得到了扩展。8一、程序附录functionmain()%%第一部分:使用对数函数扩展图像灰度级%功能:将输入图像中较窄的灰度值映射为输出较宽的灰度值%ima=imread('fig3.8(a).jpg');c=0.9;imad=convlog(ima,c);figuresubplot(1,3,1);imshow(ima);title('原输入图像');subplot(1,3,2);imshow(imad);title(['对数变换后的图像比例系数c
7、='num2str(c)]);d=0.35;k=1.2;imam=convmi(ima,d,k);subplot(1,3,3);imshow(imam);title(['幂律变换后的图像指数系数γ='num2str(d)',''k='num2str(k)]);figuresubplot(2,2,1);imshow(ima);title('原输入图像');subplot(2,2,2);eq=histeq(ima);imshow(eq);title('直方图均衡化后的图');subplot(2,2,3);imhist(ima
8、);title('原输入图像直方图');8subplot(2,2,4);imhist(eq);title('均衡化后的直方图');figure[count,eqcount]=imhistmy(ima);x=0:1:255;subplot(1,2,1);stem(x,count,'.');title('自制直方图');