资源简介

此代码用了非下采样contoulet的方法,把输入图像在用两个滤波器(方向子带滤波和清晰度滤波)滤波后得到分解结果。可以自己写出图像融合的MATLAB代码,很简单。就把源图像分成三个通道再融合就好了。

资源截图

代码片段和文件信息

function y=nsct_fuse(I1I2nlevels)
%    NSCT
%    Input:
%    I1 - input image A
%    I2 - input image B
%    nlevels - number of directions in each decomposition level 每个分解级别的方向数
%    Output:
%    y  - fused image   


%nlevels = [2334] ;       
pfilter = ‘pyrexc‘ ; %金字塔滤波器             
dfilter = ‘vk‘ ; %方向滤波器
 
I1=double(I1);
I2=double(I2);
coeffs_1 = nsctdec( I1 nlevels dfilter pfilter );%NSCT分解
coeffs_2 = nsctdec( I2 nlevels dfilter pfilter );


[mn]=size(I1);
coeffs=coeffs_2;
for i=2:numel(nlevels)+1
    if nlevels(i-1)==0
        E1=abs(coeffs_1{i});
        E2=abs(coeffs_2{i});
        % map=E1>E2;
        um=3;
        A1 = ordfilt2(abs(es2(E1floor(um/2))) um*um ones(um));
        A2 = ordfilt2(abs(es2(E2floor(um/2))) u

评论

共有 条评论