• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

MATLAB图像处理之直方图匹配(图像合理增强)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

 

先拿结果来看,第一幅是原图  第二幅是直方图均衡化后的图像增强 第三幅是直方图匹配后的处理结果

第二幅  第三幅来看    直接均衡化 会大大增加对比对  但是  有时不符合美观 

%直方图匹配
%直方图均衡有时并不能总取得想要的图像增强结果
%特别的 能够在图片指定位置处进行图像增强是很有用的
%上述这种需求的方法  就是直方图匹配或者 直方图规定化

%通俗讲   直方图匹配是将原图的灰度分布均匀化
%如果想体现某一灰度直方图的图像处理,这就需要直方图匹配
%具体算法例子如下 

%首先直方图均衡
%假设64*64像素的3Bit图像灰度分布如下
%rk                 nk              pk=nk/n
%r0=0             790               0.19  
%r1=1             1023              0.25
%r2=2             850               0.21
%r3=3             656               0.16 
%r4=4             329               0.08
%r5=5             245               0.06
%r6=6             122               0.03
%r7=7             81                0.02
%sk=(L-1)*SUM(pk)直方图均衡化公式 得到映射的下表
%s0=1.33->1 s1=3.08->3 s2=4.55->5 s3=5.67->6
%s4=6.23->6 s5=6.65->7 s6=6.86->7 s7=7.00->7
%均衡化后有5个灰度级了
%r0的790个像素 映射成 s0 取1
%r1的1023个像素 映射成 s1 取3
%r2的850个像素 映射成 s2 取5
%r3的656个像素 映射成 s3 取6
%r4的656个像素 映射成 s4 取6
%r5的245个像素 映射成 s5 取7
%r6的122个像素 映射成 s6 取7
%r7的81个像素  映射成 s7 取7

%其次按章自己规定的直方图分布进行如下计算
%例如自己规定的直方图分布
%z0=0   pz(z0)=0
%z1=1   pz(z1)=0
%z2=2   pz(z2)=0
%z3=3   pz(z3)=0.15
%z4=4   pz(z4)=0.20
%z5=5   pz(z5)=0.30
%z6=6   pz(z6)=0.20
%z7=7   pz(z7)=0.15
%计算变换函数G(zq)=(L-1)SUM(pz(i))  i从1到q
%G(z0)=7*pz(z0)=0 G(z1)=7*(pz(z0)+pz(z1))=0  依次类推
%得到如下变换函数表
%z0=0     G(z0)=0
%z1=1     G(z1)=0
%z2=2     G(z2)=0
%z3=3     G(z3)=1
%z4=4     G(z4)=2
%z5=5     G(z5)=5
%z6=6     G(z6)=6
%z7=7     G(z7)=7
%发现G不是严格单调的  也就是   他有值相等的部分  需要做如下处理
%在G函数中找到最小的值来接近s表中的数  上面所算s表中s0=1 在G表中G(z3)=1
%这是完美的匹配,因此  s到z的映射表如下
%s0=1 对应G(z3) 此时  z=3
%最后得到
%S        Z
%1        3
%3        4
%5        5
%6        6
%7        7
%也就是均衡化8bit图像中, 1的值映射成了3  一次类推


%MATLAB工具箱函数  g=histeq(f,hspec)
%hspec为指定的直方图的分布   g为输出图像   其直方图近似于指定的直方图hspec hspec是一个行向量构成的
%length(hspec)远小于图像f中的灰度级时,图像g的直方图通常会较好的匹配hspec
%https://blog.csdn.net/superjunenaruto/article/details/80037777

clc 
clear
f=imread('D:亮度调节与空间滤波\6.jpg');
subplot(3,3,1)
imshow(f);
subplot(3,3,2)
imhist(f);
xlim('auto')
ylim('auto')
subplot(3,3,4)
[g0 t]=histeq(f,64);%直方图均衡化
imshow(g0)
subplot(3,3,5)
imhist(g0)
xlim('auto')%自动适应x轴的长度
ylim('auto')%自动适应y轴的长度
subplot(3,3,6)
plot(t)

n=0:255;
b=60;
c=70;
nn=exp(-(n-b).^2./(2*c^2));
nn=nn/5;
subplot(3,3,3)
plot(nn)

hspec=nn;
[g1,t]=histeq(f,hspec);%直方图匹配
subplot(3,3,7)
imshow(g1)
subplot(3,3,8)
imhist(g1)
xlim('auto')%自动适应x轴的长度
ylim('auto')%自动适应y轴的长度
subplot(3,3,9)
plot(t)%横坐标代表输入亮度值  纵坐标代表输出灰度值的归一化

结果如下

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
DelphiTIdTCPClient组件发布时间:2022-07-18
下一篇:
Delphi2009中的资源文件编辑器发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap