在图像融合过程中,最主要的就是如何提取低高频系数以及低高频系数的融合准则。基于DCT变换的图像融合算法原理如图2所示。
图2 DCT融合算法原理
算法步骤如下。
步骤1精确配准待融合的源图像。
步骤2采用分块的方法将参与融合的每幅大小为M×N的源图像分别分成m×m个小块。
步骤3对步骤2中得到的小块都进行DCT变换。
步骤4对通过DCT变换的小块分别提取低频系数和高频系数,并对相应位置的低高频系数根据低高频融合准则进行融合。
步骤5对已融合的DCT系数进行IDCT,最终得到融合图像。
2.1 低频系数融合
对视觉最重要的信息部分,都集中在图像的低频。低频代表图像像素之间慢变化,即图像框架部分[11] 。为了保持图像的可视性,保留图像的低频部分,低频部分的改变有可能引起图像较大的变动。基于DCT变换的融合图像的低频系数采用平均法,假设有p幅多曝光图像,可定义为
式中Gk(i,j)是源图像经DCT变换后提取的低频系数;G(i,j)为融合后的低频系数;wk是权重因子。
2.2 高频系数融合
高频系数对应于图像的细节信息,如边缘等特征。高频系数的融合规则如下。
(1)分块后的图像经DCT变换后,提取它的高频系数。
分别计算高频系数D(i,j)以像素点(i,j)为中心的(2k+1)×(2k+1)邻域内的图像标准差表达式为
(2)记p幅多曝光图像的某高频系数的区域标准差分别为[C1(i,j),C2(i,j),…,Cp(i,j)],则提取的高频系数对应的权重系数为
(3)由式(7)可以得出p幅多曝光图像的权重,对它们进行比较,融合后的高频系数D(i,j)为最大的权重系数所对应的高频系数。如果
那么
clc
clear
close all
%Select First Image
disp(‘Please Select First Image:’)
[filename, pathname]= uigetfile({‘.jpg;.png;*.tif’},‘Select First Image’);
path=fullfile(pathname, filename);
im1=imread(path);
disp(‘Great! First Image is selected’)
%Select Second Image
disp(‘Please Select Second Image:’)
[filename, pathname]= uigetfile({‘.jpg;.png;*.tif’},‘Select Second Image’);
path=fullfile(pathname, filename);
im2=imread(path);
disp(‘Great! Second Image is selected’)
if size(im1,3) == 3 % Check if the images are grayscale
im1 = rgb2gray(im1);
end
if size(im2,3) == 3
im2 = rgb2gray(im2);
end
if size(im1) ~= size(im2) % Check if the input images are of the same size
error(‘Size of the source images must be the same!’)
end
1 matlab版本
2014a
2 参考文献
[1]刘卫华,马洋花,刘颖.基于DCT变换的多曝光图像融合方法[J].西安邮电大学学报. 2016,21(06)
3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除