首页 直方图均衡化的MATLAB实现(遥感课程设计)

直方图均衡化的MATLAB实现(遥感课程设计)

举报
开通vip

直方图均衡化的MATLAB实现(遥感课程设计)遥感技术ProjectProject1:图像直方图均衡化一、实验目的依据实验指导说明,我们用MATLAB实现航拍图的图像直方图均衡化,主要由以下的方法来达到实验要求。1)将Image1.jpg转换为灰度图像A2)通过编程对图像A进行直方图均衡化处理,得到处理后的图像B。显示图像A和B,以及各自对应的灰度直方图3)利用锐化方法,编制程序,对图像A和B分别使用罗伯特梯度,索伯尔梯度,拉普拉斯方法,进行处理4)在求得梯度信息的基础上将两条电力线完成的提取出来,即在图像中找到两条直线刚好对应了这两条电力线(如下图所示)建议...

直方图均衡化的MATLAB实现(遥感课程设计)
遥感技术ProjectProject1:图像直方图均衡化一、实验目的依据实验指导说明,我们用MATLAB实现航拍图的图像直方图均衡化,主要由以下的方法来达到实验要求。1)将Image1.jpg转换为灰度图像A2)通过编程对图像A进行直方图均衡化处理,得到处理后的图像B。显示图像A和B,以及各自对应的灰度直方图3)利用锐化方法,编制程序,对图像A和B分别使用罗伯特梯度,索伯尔梯度,拉普拉斯方法,进行处理4)在求得梯度信息的基础上将两条电力线完成的提取出来,即在图像中找到两条直线刚好对应了这两条电力线(如下图所示)建议尝试。二、实验原理1、图像增强当一幅图像的目视效果不太好,或者有用的信息突出不够时,就需要做图像增强处理。图像增强是指对图像的某些特征,如边缘、轮廓或对比度等进行强调或锐化图像增强的算法较多,例如:灰度变换增强、直方图变换增强、空间域滤波增强、频率域滤波增强等等。其中图像的灰度直方图修正技术是最为常用的图像增强算法。对于一些灰度集中分布在狭窄的区间,缺乏细节信息的图像,通过直方图修正后可以使图像的灰度间距拉开,或分布的更为均匀,从而使图像的对比度提高,达到图像增强的目的。2、图像直方图均衡化直方图是反映一幅图像中的灰度级与出现这种灰度级的概率之间关系的统计图 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 。直方图的横坐标是灰度级kr,纵坐标是图像中具有该灰度级的像素个数或出现这个灰度级数的概率kPr。直方图能直观地表示出图像具有某种灰度级的像素个数,是对图像灰度值分布情况的整体描述。概率灰度直方图的计算公式为:/kkPrnN。其中N为图像中的像素总数,kn为第k级灰度的像素数。通过观察图像的灰度直方图,就可以判断这幅图像的对比度和清晰度,也可以掌握图像的明暗程度。本文即采用直方图均衡化[11]的方法来对航拍图像进行增强处理。设r和s分别表示归一化(注:归一化是指图像的灰度值通过某个比例变换后限制在[0,1]之间)的图像灰度和经直方图修正后的图像灰度,即0,1rs。在0,1区间内的任何一个r值都可产生一个s值,且有:sTr。Tr为变换函数,满足:(1)在01r区间内是单调递增函数;(2)对于01r,有01Tr。条件(1)保证变换后的灰度从黑到白的次序不变,条件(2)确保灰度变换后的像素处于允许的范围之内。从s到r的反变换关系为:1rTs,1Ts同样满足上述条件。由概率论知,已知灰度概率密度函数rPr,且s是r的函数,则s的概率密度函数sPs可以由rPr求出。设s的分布函数为sFs,根据分布函数的定义有:srssrFsPsdsPrdr(2.2)由于密度函数是分布函数的导数,公式(2.2)两边对s求导得:1srrrddrdPsPrdrPrPrTsdsdsds(2.3)式(2.3)表明,通过变换函数Tr可以控制图像灰度级的概率密度函数,从而改变图像的灰度分布,这就是直方图修正的基础。直方图均衡化是对原图像进行某种变换,使原图像的灰度直方图形成近似的均匀分布。对于连续图像,变换函数rTr和原图像概率密度函数rPr之间的关系为:0rrsTrPrdr(2.4)其中,0rrPrdr是r的累积分布函数,由于累积分布函数是r的函数,且从0到1单调递增,所以变换函数即式(2.4)满足关于Tr在01r区间内单值单调增加,在01r内有01Tr的两个条件。对公式(2.4)中的r求导,有/rdsdrPr,把求导结果代入式(2.3),则有:111srrrrdrPsPrPrPrdsdsPrdr(2.5)上面的推导过程表明在变换后的变量s的定义域内的概率密度函数是均匀分布的。即用r的累积分布函数作为变换函数产生了一幅灰度分布具有均匀概率分布的图像。对于离散图像,可以用频率近似替代概率值,第i个灰度级ir出现的频率为in,其所对应的概率值为:iinPrn,01ir,0,1,,1iL。式中L是灰度级的总数目。由此可以写出离散图像的变换函数表达式如下:1100kkiiiriiinsTrPrn(此公式中k-1应为i)直方图均衡化是图像处理领域中利用图像直方图对对比度进行调整的方法。这种方法通常用来增加许多图像的局部对比度,尤其是当图像的有用数据的对比度相当接近的时候。通过这种方法,亮度可以更好地在直方图上分布。这样就可以用于增强局部的对比度而不影响整体的对比度,直方图均衡化通过有效地扩展常用的亮度来实现这种功能。直方图均衡化的基本思想是把原始图的直方图变换为均匀分布的形式,这样就增加了象素灰度值的动态范围从而可达到增强图像整体对比度的效果。设原始图像在(x,y)处的灰度为f,而改变后的图像为g,则对图像增强的方法可表述为将在(x,y)处的灰度f映射为g。在灰度直方图均衡化处理中对图像的映射函数可定义为:g=EQ(f),这个映射函数EQ(f)必须满足两个条件(其中L为图像的灰度级数):(1)EQ(f)在0≤f≤L-1范围内是一个单值单增函数。这是为了保证增强处理没有打乱原始图像的灰度排列次序,原图各灰度级在变换后仍保持从黑到白(或从白到黑)的排列。(2)对于0≤f≤L-1有0≤g≤L-1,这个条件保证了变换前后灰度值动态范围的一致性。3、罗伯特梯度梯度反映了相邻像元亮度变化率,也就是说,图像中如果存在边缘,如湖泊、河流的边界,山脉和道路等,则边缘处有较大的梯度值。对于亮度值较平滑的部分,亮度梯度值较小。因此,找到梯度较大的位置,也就找到边缘,然后再用不同的梯度计算值代替边缘处像元的值,也就突出了边缘,实现了图像的锐化。罗伯特梯度方法也可以近似地用 模板 个人简介word模板免费下载关于员工迟到处罚通告模板康奈尔office模板下载康奈尔 笔记本 模板 下载软件方案模板免费下载 计算,其公式表示为:|gradf|≌|t1|+|t2|(4.21)具体为:|gradf|≌|f(i,j)-f(i+1,j+1)|+|f(i+1,j)-f(i,j+1)|(4.22)模板有两个,表示为:t1=(10t2=(0-10-1)10)相当于窗口2×2大小,用模板t1做卷积计算后取绝对值加上模板t2计算后的绝对值。计算出梯度值放在左上角的像元f(i,j)的位置,成为r(i,j)。这种算法的意义在于用交叉的方法检测出像元与其领域在上下之间或左右之间或斜方之间的差异,最终产生一个梯度影像,达到提取边缘信息的目的。有时为了突出主要边缘,需要将图像的其他亮度差异部分模糊掉,故采用设定正阈值的方法,只保留较大的梯度值来改善锐化后的效果。4、索伯尔梯度索伯尔方法是前述方法的改进,将式4.22中的模板改进成为t1=(121t2=(-101000-202-1-2-1)-101)与罗伯特方法相比,此法较多地考虑了邻域点的关系,使窗口由2×2扩大到3×3,使检测边界更加精确。5、拉普拉斯算法在模板卷积运算中,将模板定义为:t(m,n)=(0101-41010)即上下左右4个邻点的值相加再减去该像元值的四倍,作为这一像元的新值。拉普拉斯算法的意义与前述两种算法不同,它不检测均匀亮度的变化,而是检测变化率的变化率,相当于二阶微分。计算出的图像更加突出亮度值突变的位置。有时,也用原图像的值减去模板运算结果的整数倍,即:r’(i,j)=f(i,j)-kr(i,j)(4.23)式中,r(i,j)为拉普拉斯运算结果;k为正整数;f(i,j)为原始图像;r’(i,j)为最后结果。这样的计算结果保留了原图像作为背景,边缘之处加大了对比度,更突出了边界位置。6、Hough变换Hough变换是图像处理中从图像中识别几何形状的基本方法之一。Hough变换的基本原理在于利用点与线的对偶性,将原始图像空间的给定的曲线通过曲线表达形式变为参数空间的一个点。这样就把原始图像中给定曲线的检测问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 转化为寻找参数空间中的峰值问题。也即把检测整体特性转化为检测局部特性。比如直线、椭圆、圆、弧线等。Hough变换思想为:在原始图像坐标系下的一个点对应了参数坐标系中的一条直线,同样参数坐标系的一条直线对应了原始坐标系下的一个点,然后,原始坐标系下呈现直线的所有点,它们的斜率和截距是相同的,所以它们在参数坐标系下对应于同一个点。这样在将原始坐标系下的各个点投影到参数坐标系下之后,看参数坐标系下有没有聚集点,这样的聚集点就对应了原始坐标系下的直线。在实际应用中,y=k*x+b形式的直线方程没有办法表示x=c形式的直线(这时候,直线的斜率为无穷大)。所以实际应用中,是采用参数方程p=x*cos(theta)+y*sin(theta)。这样,图像平面上的一个点就对应到参数p---theta平面上的一条曲线上,其它的还是一样。三、实验步骤1、将Image1_withnoise.jpg转换为灰度图像A在matlab中输入以下代码,实现转换为灰度图并得出其直方图:I=imread('Image1.jpg');I1=rgb2gray(I);I2=im2double(I1);hist(I2(:),40);figure,imshow(I1);灰度图像0.20.30.40.50.60.70.80.9100.511.522.533.54x1042、对图像A进行直方图均衡化处理,得到处理后的图像BI3=histeq(I2);figure,imshow(I3);title('灰度图像B');hist(I3(:),40);灰度图像B00.10.20.30.40.50.60.70.80.910200040006000800010000120003、图像锐化罗伯特梯度法处理图像A:hx=[-1;1];hy=hx';gradx=filter2(hx,I2,'same');gradx=abs(gradx);figure,imshow(gradx,[]);>>title('水平')>>grady=filter2(hy,I2,'same');grady=abs(grady);figure,imshow(grady,[]);title('竖直');>>grad=gradx+grady;>>figure,imshow(grad,[]);title('罗伯特处理后的图像A');罗伯特处理后的图像A竖直水平罗伯特梯度法处理图像B:hx=[-1;1];hy=hx';gradx=filter2(hx,I3,'same');gradx=abs(gradx);figure,imshow(gradx,[]);>>title('水平')>>grady=filter2(hy,I3,'same');grady=abs(grady);figure,imshow(grady,[]);title('竖直');>>grad=gradx+grady;>>figure,imshow(grad,[]);title('罗伯特处理后的图像B');水平竖直罗伯特处理后的图像B索伯尔梯度法处理图像A:h1=fspecial('sobel');MotionBlur1=imfilter(I1,h1);figure,imshow(MotionBlur1);索伯尔处理后的图像A索伯尔梯度法处理图像B:h1=fspecial('sobel');MotionBlur1=imfilter(I3,h1);figure,imshow(MotionBlur1);索伯尔处理后的图像B拉普拉斯梯度法处理图像A:h2=fspecial('Laplacia',0);MotionBlur2=imfilter(I1,h2);figure,imshow(MotionBlur2);title('拉普拉斯处理后的图像A');拉普拉斯处理后的图像A拉普拉斯梯度法处理图像B:h2=fspecial('Laplacia',0);MotionBlur2=imfilter(I3,h2);figure,imshow(MotionBlur2);title('拉普拉斯处理后的图像,B');拉普拉斯处理后的图像,B四、实验结论由实验结果可知:索伯尔锐化效果好并且进行图像的直方图均衡化后可以提高求边缘的精确度!五、思考题利用Hough变换,在求得梯度信息的基础上将两条电力线完成的提取出来,以拉普拉斯梯度法锐化后的图像为例:在MATLAB命令框中输入以下程序代码:f=edge(double(MotionBlur2),'sobel');%边缘检测[H,theta,rho]=hough(f,'rho',4);%霍夫变换P=houghpeaks(H,2);%寻找峰值x=theta(P(:,2));y=rho(P(:,1));lines=houghlines(f,theta,rho,P,'FillGap',70,'MinLength',400);figure,imshow(MotionBlur2);holdonfork=1:length(lines)xy=[lines(k).point1;lines(k).point2];plot(xy(:,1),xy(:,2),'LineWidth',2,'Color','b');end提取结果六、源程序>>clearcloseallI=imread('Image1.jpg');I1=rgb2gray(I);I2=im2double(I1);hist(I2(:),40);figure,imshow(I1);title('灰度图像A');I3=histeq(I2);figure,imshow(I3);title('灰度图像B');hist(I3(:),40);hx=[-1;1];hy=hx';gradx=filter2(hx,I2,'same');gradx=abs(gradx);figure,imshow(gradx,[]);title('水平')grady=filter2(hy,I2,'same');grady=abs(grady);figure,imshow(grady,[]);title('竖直');grad=gradx+grady;figure,imshow(grad,[]);title('罗伯特处理后的图像A');hx=[-1;1];hy=hx';gradx=filter2(hx,I3,'same');gradx=abs(gradx);figure,imshow(gradx,[]);title('水平')grady=filter2(hy,I3,'same');grady=abs(grady);figure,imshow(grady,[]);title('竖直');grad=gradx+grady;figure,imshow(grad,[]);title('罗伯特处理后的图像B');h1=fspecial('sobel');MotionBlur1=imfilter(I1,h1);figure,imshow(MotionBlur1);title('索伯尔处理后的图像A');h1=fspecial('sobel');MotionBlur1=imfilter(I3,h1);figure,imshow(MotionBlur1);title('索伯尔处理后的图像B');h2=fspecial('Laplacia',0);MotionBlur2=imfilter(I3,h2);figure,imshow(MotionBlur2);title('拉普拉斯处理后的图像,B');MotionBlur2=imfilter(I1,h2);figure,imshow(MotionBlur2);title('拉普拉斯处理后的图像A');h2=fspecial('Laplacia',0);f=edge(double(MotionBlur2),'sobel');%边缘检测[H,theta,rho]=hough(f,'rho',4);%霍夫变换P=houghpeaks(H,2);%寻找峰值x=theta(P(:,2));y=rho(P(:,1));lines=houghlines(f,theta,rho,P,'FillGap',70,'MinLength',400);figure,imshow(MotionBlur2);holdonfork=1:length(lines)xy=[lines(k).point1;lines(k).point2];plot(xy(:,1),xy(:,2),'LineWidth',2,'Color','b');endtitle('提取结果')
本文档为【直方图均衡化的MATLAB实现(遥感课程设计)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
Vivian_Anne
暂无简介~
格式:pdf
大小:916KB
软件:PDF阅读器
页数:15
分类:
上传时间:2018-11-02
浏览量:34