怎样在matlab中实现一副bmp图像的灰度直方图?我用imread和imhist为什么会出错?

怎样在matlab中实现一副bmp图像的灰度直方图?我用imread和imhist为什么会出错?,第1张

确保你的图像是二维灰度图像,灰度直方图图像就为uint8型就可以。慎陆滚悉肆

I=imread('D:\ebook\spot2.bmp')%%I为二维灰度宽余图像,600*600,uint8型

imhist(I)

首先需要说明的是,如果你说的是一道完整的题目,则这羡乱肆道题目没有唯一解,因为题目中没有说明原始图像的灰度级数(比如原始图像是16个灰度级的,或者是32个灰度级的,等等)。为了给你提供一个解题思路,现在人为假设原始图像是16个灰度级的,其它灰度级的解法类似。1、图像的灰度直方图求法为:(1)先计算图像中各个灰度级的出现频率,用h(i)表示灰度级i的出现频率,其值等于灰度级出现次数/图像像素个数:h(0)=2/16h(1)=1/16h(2)=3/16h(3)=2/16h(4)=0/兄轿16h(5)=1/16h(6)=4/16h(7)=1/16h(8)=1/16h(9)=1/16h(10)=h(11)=h(12)=h(13)=h(14)=h(15)=0/16。然后以灰度级i为横轴,出现频率h(i)为纵轴即可绘制出图像对应的直方图。(2)图像进行直方图均衡化处理的过程为:先计算累积分布,用r(i)表示灰度级i的累积分布:r(0)=h(0)=2/16r(1)=r(0)+h(1)=2/16+1/16=3/16r(2)=r(1)+h(2)=3/16+3/16=6/16r(3)陪袭=r(2)+h(3)=6/16+2/16=8/16r(4)=r(3)+h(4)=8/16+0/16=8/16r(5)=r(4)+h(5)=8/16+1/16=9/16r(6)=r(5)+h(6)=9/16+4/16=13/16r(7)=r(6)+h(7)=13/16+1/16=14/16r(8)=r(7)+h(8)=14/16+1/16=15/16r(9)=r(8)+h(9)=15/16+1/16=16/16=1r(10)=r(11)=r(12)=r(13)=r(14)=r(15)=1将累积分布进行量化(量化时需要用到原始图像的灰度级数,这也是为什么前面需要说明的原因),量化后的灰度级用rq(i)表示,量化公式为rq(i)=ROUND(r(i)*15),(说明:量化公式中的15等于原始图像灰度级数减1),可得:rq(0)=ROUND(r(0)*15)=2rq(1)=ROUND(r(1)*15)=3rq(2)=ROUND(r(2)*15)=6rq(3)=ROUND(r(3)*15)=8rq(4)=ROUND(r(4)*15)=8rq(5)=ROUND(r(5)*15)=8rq(6)=ROUND(r(6)*15)=12rq(7)=ROUND(r(7)*15)=13rq(8)=ROUND(r(8)*15)=14rq(9)=ROUND(r(9)*15)=15rq(10)=ROUND(r(10)*15)=15rq(11)=ROUND(r(11)*15)=15rq(12)=ROUND(r(12)*15)=15rq(13)=ROUND(r(13)*15)=15rq(14)=ROUND(r(14)*15)=15rq(15)=ROUND(r(15)*15)=15因此,原始图像中的灰度级和均化后图像中的灰度级之间的对应关系为:0->21->32->63->84->85->86->127->138->149->1510->1511->1512->1513->1514->1515->15将原始图像中对应的灰度值安装上述对应关系替换成相应的灰度值,即可得到均化图像,结果如下:38138612212146128156122(在电脑上直接做的,仅供参考。ROUND(.)表示四舍五入。)

参考悔和http://blog.csdn.net/hln24477932/archive/2007/08/28/1762131.aspx

直方图统计悉前桥http://topic.csdn.net/t/20040623/16/3116700.html

代码就等高睁猛手或者自己整合;偶路过。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/12297850.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存