欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    直方图均衡化matlab程序.doc

    • 资源ID:27112152       资源大小:157.50KB        全文页数:24页
    • 资源格式: DOC        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    直方图均衡化matlab程序.doc

    Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date直方图均衡化matlab程序直方图和直方图均衡的Matlab完整程序(数字图像处理)直方图和直方图均衡的Matlab完整程序(数字图像处理)一、 实验目的 掌握基本的图象增强方法,观察图象增强的效果,加深对灰度直方图及直方图均衡化的理解,掌握直方图均衡化方法。二、实验内容 将一张彩色图片转换成灰色图片,画灰度直方图和均衡化后的直方图,并将灰度图和均衡化后的图片对比。三、实验原理灰度直方图是将数字图像中的所有像素,按照灰度值的大小,统计其所出现的频度。通常,灰度直方图的横坐标表示灰度值,纵坐标为像素个数,也可以采用某一灰度值的像素数占全图像素数的百分比作为纵坐标。直方图均衡方法的基本原理是:对在图像中像素个数多的灰度值(即对画面起主要作用的灰度值)进行展宽,而对像素个数少的灰度值(即对画面不起主要作用的灰度值)进行归并。从而达到清晰图像的目的。四、实验程序%函数功能,画出图像的直方图,并对图像进行直方图均衡%直接读图像abc.jpg,读到tuu中%graydis是原始直方图各灰度级像素个数%原始直方图graydispro,利用原始直方图计算原始累计直方图graydispro%t计算和原始灰度对应的新的灰度t,建立映射关系,t坐标代表原始的灰度,t代表对应原始坐标的新坐标%new_graydis是统计新直方图各灰度级像素个数%计算新的灰度直方图new_graydispro,利用新的直方图计算新的累计直方图new_graydispro%计算直方图均衡后的新图new_tu%clear allclose alltuu=imread('abc.jpg'); %读入图片tu=rgb2gray(tuu); %将彩色图片转换为灰度图graydis=zeros(1,256); %设置矩阵大小graydispro=zeros(1,256);new_graydis=zeros(1,256);new_graydispro=zeros(1,256);h w=size(tu);new_tu=zeros(h,w);%计算原始直方图各灰度级像素个数graydisfor x=1:h for y=1:w graydis(1,tu(x,y)=graydis(1,tu(x,y)+1; endend%计算原始直方图graydisprograydispro=graydis./sum(graydis);subplot(1,2,1);plot(graydispro);title('灰度直方图');xlabel('灰度值');ylabel('像素的概率密度');%计算原始累计直方图for i=2:256 graydispro(1,i)=graydispro(1,i)+graydispro(1,i-1);end%计算和原始灰度对应的新的灰度t,建立映射关系for i=1:256t(1,i)=floor(254*graydispro(1,i)+0.5);end%统计新直方图各灰度级像素个数new_graydisfor i=1:256 new_graydis(1,t(1,i)+1)=new_graydis(1,t(1,i)+1)+graydis(1,i);end%计算新的灰度直方图new_graydispronew_graydispro=new_graydis./sum(new_graydis);subplot(1,2,2);plot(new_graydispro);title('均衡化后的灰度直方图');xlabel('灰度值');ylabel('像素的概率密度');%计算直方图均衡后的新图new_tufor x=1:h for y=1:w new_tu(x,y)=t(1,tu(x,y); endendfigure,imshow(tu,);title('原图');figure,imshow(new_tu,);title('直方图均衡化后的图');/另外两种代码:代码Matlab下面的代码来自archiless,注释非常详细,适合初学。% 数字图像处理程序作业% 本程序能将JPG格式的彩色图像文件灰度化并进行直方图均衡% 输入文件:PicSample.jpg 待处理图像% 输出文件:PicSampleGray.bmp 灰度化后图像% PicEqual.bmp 均衡化后图像% 输出图形窗口说明% figure NO 1 待处理彩色图像% figure NO 2 灰度化后图像% figure NO 3 直方图% figure NO 4 均衡化后直方图% figure NO 5 灰度变化曲线% figure NO 6 均衡化后图像% 1, 处理的图片名字要为 PicSample.jpg% 2, 程序每次运行时会先清空workspace% 作者;archiless lorderclear all%一,图像的预处理,读入彩色图像将其灰度化PS=imread('PicSample.jpg'); %读入JPG彩色图像文件imshow(PS) %显示出来 figure NO 1title('输入的彩色JPG图像')imwrite(rgb2gray(PS),'PicSampleGray.bmp'); %将彩色图片灰度化并保存PS=rgb2gray(PS); %灰度化后的数据存入数组figure,imshow(PS) %显示灰度化后的图像,也是均衡化前的样品 figure NO 2title('灰度化后的图像')%二,绘制直方图m,n=size(PS); %测量图像尺寸参数GP=zeros(1,256); %预创建存放灰度出现概率的向量for k=0:255 GP(k+1)=length(find(PS=k)/(m*n); %计算每级灰度出现的概率,将其存入GP中相应位置endfigure,bar(0:255,GP,'g') %绘制直方图 figure NO 3title('原图像直方图')xlabel('灰度值')ylabel('出现概率')%三,直方图均衡化S1=zeros(1,256);for i=1:256 for j=1:i S1(i)=GP(j)+S1(i); %计算Sk endend S2=round(S1*256); %将Sk归到相近级的灰度for i=1:256 GPeq(i)=sum(GP(find(S2=i); %计算现有每个灰度级出现的概率endfigure,bar(0:255,GPeq,'b') %显示均衡化后的直方图 figure NO 4title('均衡化后的直方图')xlabel('灰度值')ylabel('出现概率')figure,plot(0:255,S2,'r') %显示灰度变化曲线 figure NO 5legend('灰度变化曲线')xlabel('原图像灰度级')ylabel('均衡化后灰度级')%四,图像均衡化PA=PS;for i=0:255 PA(find(PS=i)=S2(i+1); %将各个像素归一化后的灰度值赋给这个像素endfigure,imshow(PA) %显示均衡化后的图像 figure NO 6title('均衡化后图像')imwrite(PA,'PicEqual.bmp');另一段Matlab的代码,来自 直方图均衡化图像增强I=imread('LENA256.bmp');imshow(I);figure;imhist(I);m,n=size(I);hf = zeros(1,256);pa = zeros(1,256);I=double(I);for i = 1:m for j = 1:n hf(I(i,j)+1)=hf(I(i,j)+1)+1;%统计各灰度像素个数 endendbmap=zeros(1,256);for i=1:256 temp=0; for j=1:i temp=temp+hf(j); end bmap(i)=floor(temp*255/(m*n);endy=zeros(m,n);for i=1:m for j=1:n y(i,j)=bmap(I(i,j)+1); endendy=uint8(y);figure;imshow(y);-

    注意事项

    本文(直方图均衡化matlab程序.doc)为本站会员(豆****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开