【MATLAB图像融合】[10]直方图匹配法的IHS变换图像融合

基于文章【9】的方法

在这里插入图片描述
       这是使用直接替换法所产生的融合图像,发现融合图像的亮度好像不太正常,这是因为不同的传感器具有不同的感光/等的传感特性差异。这些差异隐藏在图像当中,人眼看不出来这样的特性,但是当对它们进行处理之后,问题就会暴露出来。所以在这一章中,需要使用直方图匹配法和IHS变换的方法做一个衔接。先放出实验的结果吧:
在这里插入图片描述

直方图匹配

       网上对直方图匹配的方法解释有许多,我本人对数学表示的方法非常喜欢,但是,感觉没看明白,懵懵的。
       好在,像素是离散的。。。Δx,Δy都是等于1,这就很好算了有没有。。所以这里介绍的直方图匹配原理,我就不用数学语言描述了,改用图像+实例讲解。!在这里插入图片描述
       这张图就是直方图了,它代表是什么呢?横坐标是0~255,代表256级的灰度;纵坐标是该等级灰度的像素点占整体像素点的比例。
       显然,将0~255的纵坐标值加起来,等于1。这个直方图其实就是概率的分布,也是图像的传感器特性。

       这里我们用双峰函数为例,当做B图像进行演示。
在这里插入图片描述

       它的曲线和我们的图像的曲线显然不同,直方图匹配的目的就是让图像A的概率分布变得和B一样,具备B的传感器特性。
在这里插入图片描述

       经过直方图匹配后,A图像具有和B相似的概率分布了。这样的变化之后,再进行IHS变换,就会获得良好的融合效果了。
直方图匹配原理
       那么如何让A,B两图像的概率分布相似呢?算法思想是很简单的:
       1、计算A,B两个图片的概率。
       2、计算累积概率(做到此步可以完成直方图均衡)。
       3、在A的累积概率中寻找B的匹配项,也就是得到的匹配为B在A中的匹配。,得到B在A上的映射。
       4、第3步的作用就是让累积概率进行相似化,调整累计概率,这种调整是单向的,不存在灰度值高的像素比灰度值低的像素更早被调整至某一灰度。
       5、根据3进行灰度替换即可。

       如果需要知道得非常清晰,还是建议去看看数学公式,可能才知道为什么要这样做。
在这里插入图片描述
MATLAB实现

1、计算概率,累积概率。

A=imread();
A=double(A);
[m,n]=size(A);

Pa=zeros(1,256);             %计算概率分布
for i=1:m
    for j=1:n
        t=A(i,j);
        Pa(1,t+1)=Pa(1,t+1)+1;
    end
end
Pa=Pa./(m*n);
F1=cumsum(Pa);                %计算累积概率

2、替换灰度

for i=1:256
    temp{i}=F1-F2(1,i);
    temp{i}=abs(temp{i});          %因为要找距离最近的点,所以取绝对值
    [x,num(i)]=min(temp{i});   %找到两个累积直方图距离最近的点
end

out=zeros(m,n);
for i=1:m
   for j=1:n
      out(i,j)=num(B(i,j)+1)-1;    %由原图的灰度通过索引映射到新的灰度
   end
end


       上述代码片无法直接运行,需要结合文章【9】以及自己修改才可以用。没有源代码,是因为我做完后不小心删掉了-,-,这代码写了有段时间不好复现了,所以上面那些都是直接打出来的代码。但是拿着用是没问题的,算法思想和步骤没错的。如果有运行了跑不了再告诉我吧。
总结
       1、IHS处理色彩的问题很好用,比较新的论文也有围绕它们来做的,但是不在方法上创新,想着在应用上找不同。。有点下乘了。
       2、只实现了最基本的功能,可以改进的地方有许多,举例来说:①、像是min函数这样的系统函数,自己重新编写一下最需要的功能可以改进提高匹配精度。②、IHS2RGB的变换公式可以改下,把1/3,1/3,1/3改成1/6,2/3,1/6也许视觉效果会更好。③、代码可以简化,for循环使用次数降低,提高计算速度。

  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值