直方图图像处理实验报告.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数字图像处理实验 实验一 直方图处理 实验目的 理解图像直方图的概念,掌握图像直方图的绘制方法 掌握直方图均衡化的原理,并会用直方图均衡化对图像进行处理。 实验要求 1.读入图像,可使用imread。 2.输出图像,可使用imshow。 3.绘制图像pout.tif的归一化的直方图,可使用IPT函数imhist。 4.对图像进行直方图均衡化,可使用IPT函数histeq,对均衡化前后的图像以及直方图进行对比。 实验原理 一幅数字图像在范围[0, G]内共有L个灰度等级,其直方图定义为离散函数 其中rk是区间[0, G]内的第k级亮度,nk是灰度级为rk的图像中的像素数。 通常,我们会用到归一化直方图,即使所用所有元素h(rk)除以图像中的像素总数n所得到的图形: 其中k=1,2,…,L。 Matlab中提供了IPT函数imhist来绘制图像的直方图,但是除此之外绘制直方图的方法还有很多,可以通过条形图、杆状图等方式来表示直方图。 直方图均衡化主要用于增强动态范围偏小的图像的反差。该方法的基本思想是把原始的直方图变换为均匀分布的形状,这样就增加了像素灰度值的动态范围,从而达到增强图像整体对比度的效果。 直方图均衡化一般采用原始图的累计分布函数作为变换函数。假设灰度级归一化至范围[0, 1]内,pr(r)表示给定图像中的灰度级的概率密度函数,对于离散的灰度级,均衡化变换为: 式中k=1,2,…,L,sk是输出图像中的亮度值,它对应于出入图像中的亮度值rk。 实验心得: 1. matlab的函数的功能很强大,一个简单的函数调用就可以解决复杂的问题。这样,就需要在函数调用时注意函数的参数,否则很容易出错。比如函数 histeq(a,n),就要注意其中的n为灰度值的个数。 2. 对于自己编写函数实现某些特定的功能时,需要对原理掌握清楚,如实验二中需自己编写函数实现图像的均衡,就要求对直方图的均衡原理掌握到位。 3. 使用读图像函数imread()时需注意该程序的物理路径和函数参数,即图像的物理路径需要保持一致。 4. 在代码中定义某些参数,可以扩大代码的使用范围,提高代码的灵活性。例如,程序二中定义行,列和像素,则可以稍微修改参数的初始值,就可对不同行,列和像素的图像进行直方图均衡。 实验代码: 1. 实验一代码: %读入位于D盘\image\tuxiang的lena图像 A=imread(D:\image\tuxiang\lena.bmp); %将读入的彩色图像转化为灰度图像 a=rgb2gray(A); %对图像进行直方图均衡化 b=histeq(a,256); %绘制均衡化前后的图像及其直方图 subplot(2,2,1); imshow(a); title(原始图像); subplot(2,2,2); imhist(a); title(原始图像归一化直方图); subplot(2,2,3); imshow(b); title(均衡化后的图像); subplot(2,2,4); imhist(b); title(均衡化后图像的归一化直方图); 2. 实验一代码: %读入位于D盘\image\tuxiang的lena图像 A=imread(D:\image\tuxiang\lena.bmp); %将读入的彩色图像转化为灰度图像 a=rgb2gray(A); row=512;%图像每列的像素点 col=512;%图像每行的像素点 n=255;%灰度个数 y=zeros(1,n+1); z=zeros(1,n+1); f=zeros(1,n+1); %统计图像中每个灰度的像素点个数 for i=0:n k=0; for r=1:row for c=1:col if(a(r,c)==i) k=k+1; end end end y(i+1)=k; end %映射函数 for p=1:n+1 for q=1:p f(p)=f(p)+y(q); end f(p)=f(p)*n/(row*col); end %利用映射函数对图像实现均衡化 for s=1:row for t=1:col b(s,t)=f(a(s,t)+1); end end %统计均衡化后的图像的每个灰度的像素点个数 for j=0:n h=0; for r=1:row for c=1:col if(b(r,c)==j)

文档评论(0)

dmz158 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档