天天看點

【圖像融合】基于matlab DCT域多焦點圖像融合【含Matlab源碼 1973期】

一、基于DCT變換的圖像融合算法簡介

在圖像融合過程中,最主要的就是如何提取低高頻系數以及低高頻系數的融合準則。基于DCT變換的圖像融合算法原理如圖2所示。

【圖像融合】基于matlab DCT域多焦點圖像融合【含Matlab源碼 1973期】

圖2 DCT融合算法原理

算法步驟如下。

步驟1精确配準待融合的源圖像。

步驟2采用分塊的方法将參與融合的每幅大小為M×N的源圖像分别分成m×m個小塊。

步驟3對步驟2中得到的小塊都進行DCT變換。

步驟4對通過DCT變換的小塊分别提取低頻系數和高頻系數,并對相應位置的低高頻系數根據低高頻融合準則進行融合。

步驟5對已融合的DCT系數進行IDCT,最終得到融合圖像。

2.1 低頻系數融合

對視覺最重要的資訊部分,都集中在圖像的低頻。低頻代表圖像像素之間慢變化,即圖像架構部分[11] 。為了保持圖像的可視性,保留圖像的低頻部分,低頻部分的改變有可能引起圖像較大的變動。基于DCT變換的融合圖像的低頻系數采用平均法,假設有p幅多曝光圖像,可定義為

【圖像融合】基于matlab DCT域多焦點圖像融合【含Matlab源碼 1973期】

式中Gk(i,j)是源圖像經DCT變換後提取的低頻系數;G(i,j)為融合後的低頻系數;wk是權重因子。2.2 高頻系數融合

高頻系數對應于圖像的細節資訊,如邊緣等特征。高頻系數的融合規則如下。

(1)分塊後的圖像經DCT變換後,提取它的高頻系數。

分别計算高頻系數D(i,j)以像素點(i,j)為中心的(2k+1)×(2k+1)鄰域内的圖像标準差表達式為

【圖像融合】基于matlab DCT域多焦點圖像融合【含Matlab源碼 1973期】
【圖像融合】基于matlab DCT域多焦點圖像融合【含Matlab源碼 1973期】

(2)記p幅多曝光圖像的某高頻系數的區域标準差分别為[C1(i,j),C2(i,j),…,Cp(i,j)],則提取的高頻系數對應的權重系數為

【圖像融合】基于matlab DCT域多焦點圖像融合【含Matlab源碼 1973期】

(3)由式(7)可以得出p幅多曝光圖像的權重,對它們進行比較,融合後的高頻系數D(i,j)為最大的權重系數所對應的高頻系數。如果

【圖像融合】基于matlab DCT域多焦點圖像融合【含Matlab源碼 1973期】

那麼

【圖像融合】基于matlab DCT域多焦點圖像融合【含Matlab源碼 1973期】

二、部分源代碼

%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!')      

三、運作結果

【圖像融合】基于matlab DCT域多焦點圖像融合【含Matlab源碼 1973期】

四、matlab版本及參考文獻

1 matlab版本

2014a

繼續閱讀