⛄一、小波变换彩色图像融合简介

1 前言
图像融合是将不同传感器所获得的多个图像根据某种算法进行融合处理,取长补短,使一幅图像能够更清楚、更准确地反映多幅图像的信息,多聚焦彩色图像融合是图像融合的一个分支。目前在各种图像采集与分析系统中已使用的CCD数码相机,对于聚焦良好的物体可呈现出清晰的图像。由于光学镜头焦距长度的限制,很难将场景中所有目标都成像清晰,除聚焦良好的物体外,该物体前后有一定距离外的所有目标,都呈现不同程度的模糊,因而可通过对同一场景多次成像,但聚焦物体不同,然后利用图像融合技术进行处理,就可得到不同目标都清晰的彩色图像。多聚集图像融合技术在数码相机、医学、目标识别、机器人识别等方面有着广阔的应用前景,是目前科技界研究的一个热点。

随着20世纪90年代小波变换在图像处理中的广泛应用,它也被成功地应用于图像融合。基于小波变换的多聚焦彩色图像融合方法主要有两种:(1)将彩色图像从RGB空间转化到YUV空间,在YUV空间利用小波变换进行融合处理;(2)直接对彩色图像的R、G、B三分量进行小波变换,再根据一定的融合规则获得融合图像。虽然小波变换的融合效果相对比较理想,但在融合的过程中仍存在一些问题,其中一个主要问题是小波系数的融合处理。目前主要的融合方法有基于区域能量最大、清晰度最大等融合规则,这些小波系数融合方法虽然能够提高图像融合的效果,但这些算法容易产生较大的颜色偏差。针对以上问题,本文直接对彩色图像的R、C、B三分量进行小波变换,在小波域对低频和高频采用不同的融合方法进行融合处理。实验结果表明,本文融合方法是一种有效的融合方法,相对于其他融合方法能够较好地保留图像的光谱信息。

2 基于小波变换的图像融合原理
对二维图像进行N层的小波分解,可得3N+1个不同的频带,其中包含3N个高频带和1个低频带。下面以两幅图像的融合为例,说明基于小波变换的图像融合原理。

如图1所示:对原始图像1、2进行分解,即对原始图像分别进行低、高通滤波,使原始图像分解为含有不同频率成分的4个子图像,再根据需要对低频子图像重复上面的过程,也就是建立各图像的小波塔形分解。然后对各个分解层进行融合处理,不同频率的各层根据不同的要求采用不同的融合算子进行融合处理,最终得到融合后的小波金字塔。对融合后的小波金字塔进行小波逆变换(图像重构),所得的重构图像即为融合图像,这样可有效地将来自不同的图像的细节融合在一起,以满足实际要求,同时有利于人的视觉效果。

图像融合评价指标pytorch 图像融合评价指标matlab_小波变换


图1 基于小波变换的图像融合原理

图像经小波变换后,源图像与小波变换所得到的系数之间并不是一一对应的关系,源图像中的一个像素点可以分解成多个小波系数(通常是以某个小波系数为中心的邻域区域),一个小波系数与多个像素点有关(通常是以某像素为中心的邻域),因而在基于小波变换的图像融合中,通常采用基于区域小波系数的特性进行融合。

3 图像融合效果的评价

判断多聚焦彩色图像融合结果的主要标准是:(1)融合结果更加清晰,包含更多细节信息;(2)融合前后图像的颜色比较接近;(3)具有更好的视觉效果。针对这些要求,采用以下的评价标准。

(1)熵H

图像融合评价指标pytorch 图像融合评价指标matlab_图像融合评价指标pytorch_02


它反应了图像携带的信息量的多少,熵越大说明图像的融合效果越好。其中Pi为图像第i级灰度值的概率。(2)颜色偏差

利用融合图像和原多光谱图像分别在R、G、B通道上的平均差异来定义光谱信息评价指标,表示为:

图像融合评价指标pytorch 图像融合评价指标matlab_彩色图像_03


式中F、C分别表示融合图像和理想图像,x代表R、G、B三个通道,M、N表示图像的大小。(3)峰值信噪比PSNR

图像融合评价指标pytorch 图像融合评价指标matlab_matlab_04


峰值信噪比越大,说明融合效果越好。

⛄二、部分源代码

clc;
 clear all;
 close all;Panc = imread(‘0.tif’);
 up=Panc(:,:,1);
 low = imread(‘1.tif’);
 figure(1);
 subplot(1,2,1),imshow(up);title(‘高分辨率影像’);
 subplot(1,2,2),imshow(low);title(‘多波段影像’);
 [low_R]=double(low(:,:,1)); %把函数类型unit8为double型
 [low_G]=double(low(:,:,2));
 [low_B]=double(low(:,:,3));% 高分辨率全色图小波变换
 [CPanc,LPanc] = wavedec2(up,3,‘db13’); %对图像panc用wname小波基函数实现三层分解
 % cpanc为各层分解系数,lpanc为各层分解系数长度,也就是大小.
 WH = LPanc(1,:);
 length = WH(1)*WH(2);[CMult_R,LMult_R] = wavedec2(low_R,3,‘db13’ ); % R通道小波变换,得到的低频替换全色图的低频系数
 CR = CPanc; CR(1:length) = CMult_R(1:length);[CMult_G,LMult_G] = wavedec2(low_G,3,‘db13’ ); % G通道小波变换,得到的低频替换全色图的低频系数
 CG = CPanc; CG(1:length) = CMult_G(1:length);[CMult_B,LMult_B] = wavedec2(low_B,3,‘db13’ ); % B通道小波变换,得到的低频替换全色图的低频系数
 CB = CPanc; CB(1:length) = CMult_B(1:length);RGB(:,:,1) = waverec2(CR,LPanc,‘db13’ );
 RGB(:,:,2) = waverec2(CG,LPanc,‘db13’ );
 RGB(:,:,3) = waverec2(CB,LPanc,‘db13’ );
 RGB_R=double(RGB(:,:,1));
 RGB_G=double(RGB(:,:,2));
 RGB_B=double(RGB(:,:,3));
 Final_Result=uint8(RGB);figure(2)
 imshow(Final_Result), xlabel (‘小波融合图像’ );%%%%%%%%计算融合图像的熵%%%%%%%%%%%%%%
 p = imhist(RGB(😃);
 p(p==0) = [];
 p = p ./ numel(RGB);
 Entropy = -sum(p.*log2§);
 fprintf(‘\n\n 熵值是 %.4f’, Entropy);
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 [M,N,color]=size(up);
 low=double(low);
 RGB=double(RGB);
 fenzi=0;
 fenmu_up=0;
 fenmu_low=0;
 init_up=[];
 init_low=[];
 init_up=ones(M,N)*mean(RGB(😃); %求均值
 init_low=ones(M,N)*mean(low(😃);for i=1:M
 for j=1:N
 fenzi=fenzi+(RGB(i,j)-init_up(i,j))(low(i,j)-init_low(i,j));
 fenmu_up=fenmu_up+(RGB(i,j)-init_up(i,j))^2;
 fenmu_low=fenmu_low+(low(i,j)-init_low(i,j))^2;
 end
 end
 rou=fenzi/(sqrt(fenmu_upfenmu_low));
 fprintf('\n\n 相关系数为:%.4f\n ’ ,rou);
 % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
 DD=0;
 for i=1:M
 for j=1:N
 DD=DD+ abs(RGB(i,j)-low(i,j));
 end
 end
 D=DD/(M*N);fprintf('\n\n 光谱扭曲度为:%.4f\n ’ ,D);
% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
 RASE=0;
 for i=1:M
 for j=1:N
 RASE=RASE+ (RGB(i,j)-low(i,j))^2;
 end
 end
 RASE=sqrt(RASE)/(M*N);
 fprintf('\n\n 均方根误差为:%.4f\n ’ ,RASE);
 % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %if size(low,3)==3
 low=rgb2gray(low);
 end
 if size(RGB,3)==3
 RGB=rgb2gray(RGB);
 endp2=imhist(low);
 p2(p20)=[1];
 p2=p2/numel(low);
 p3=imhist(RGB);
 p3(p30)=[1];
 p3=p3/numel(RGB);
 CE2=abs(sum(p2.*log2(p2./p3)));fprintf('\n\n 交叉熵为:%.4f\n ’ ,CE2);

⛄三、运行结果

图像融合评价指标pytorch 图像融合评价指标matlab_matlab_05


图像融合评价指标pytorch 图像融合评价指标matlab_彩色图像_06


图像融合评价指标pytorch 图像融合评价指标matlab_彩色图像_07

⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 陈木生.基于小波变换的多聚焦彩色图像融合新方法[J].计算机工程与应用. 2008,(32)

3 备注