1 简介
提出了一种基于伪维格纳分布(PWVD)的融合方法.利用一维N像素的滑动窗口在各个方向上 对各待融合图像进行伪维格纳变换,选择均方根最大的方向为各待融合图像的PWVD分解方向,分解形成待融合图像不同频段的能量谱图,然后,针对各待融合不 同频段的能量谱图,融合原则是高频段取区域能量最大,低频段取能量方差最大,形成具有不同频段的融合能量谱图,最后,对能量谱图进行PWVD逆变换,形成 融合图像.对红外与可见光图像,多聚焦图像,电子计算机X射线断层扫描(CT)图像与磁共振(MR)图像和红外与合成孔径雷达(SAR)图像进行了融合实 验,并对融合图像和待融合图像进行了信息熵对比.实验结果表明,采用本文算法的融合图像保留了待融合图像的绝大部分信息.
2 部分代码
function varargout = mapfusion(varargin)% MAPFUSION M-file for mapfusion.fig% MAPFUSION, by itself, creates a new MAPFUSION or raises the existing% singleton*.%% H = MAPFUSION returns the handle to a new MAPFUSION or the handle to% the existing singleton*.%% MAPFUSION('CALLBACK',hObject,eventData,handles,...) calls the local% function named CALLBACK in MAPFUSION.M with the given input arguments.%% MAPFUSION('Property','Value',...) creates a new MAPFUSION or raises the% existing singleton*. Starting from the left, property value pairs are% applied to the GUI before mapfusion_OpeningFunction gets called. An% unrecognized property name or invalid value makes property application% stop. All inputs are passed to mapfusion_OpeningFcn via varargin.%% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one% instance to run (singleton)".%% See also: GUIDE, GUIDATA, GUIHANDLES% Copyright 2002-2003 The MathWorks, Inc.% Edit the above text to modify the response to help mapfusion% Last Modified by GUIDE v2.5 19-Oct-2010 16:12:55% By Salvador Gabarda% Last updated: 14OCT2015% salvador.gabarda@gmail.com% Begin initialization code - DO NOT EDITgui_Singleton = 1;gui_State = struct('gui_Name', mfilename, ...'gui_Singleton', gui_Singleton, ...'gui_OpeningFcn', @mapfusion_OpeningFcn, ...'gui_OutputFcn', @mapfusion_OutputFcn, ...'gui_LayoutFcn', [] , ...'gui_Callback', []);if nargin && ischar(varargin{1})gui_State.gui_Callback = str2func(varargin{1});endif nargout[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});elsegui_mainfcn(gui_State, varargin{:});end% End initialization code - DO NOT EDIT% --- Executes just before mapfusion is made visible.function mapfusion_OpeningFcn(hObject, eventdata, handles, varargin)% This function has no output args, see OutputFcn.% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% varargin command line arguments to mapfusion (see VARARGIN)% -----------------------INITIALIZING--------------------------axes(handles.result);imagesc(zeros(256));axis off;colormap(gray);axes(handles.map);imagesc(zeros(256));axis off;colormap(gray);axes(handles.images);imagesc(zeros(256));axis off;colormap(gray);NOL=0; % number of layers in input stackhandles.NOL=NOL;X=[];handles.X=X; % stack of input layersMAP=[];handles.MAP=MAP; % decision mapFUS=[];handles.FUS=FUS; % fused imageN=8;handles.N=N; % number of analysis directions for processingDIR=0;handles.DIR=DIR; % initial direction of analysisNDIR=1;handles.NDIR=NDIR; % number of directions used in the analysisSP=[];handles.SP=SP; % spare imageBS=0;handles.BS=BS; % image biasR=[];handles.R=R; % reference imageMHP=1;handles.MHP=MHP; % image matching profile: 1 for linear profile,% 2 for cuadratic profileselection='norm';handles.selection=selection; % name of the process to be appliedinvert_sel='no';handles.invert_sel=invert_sel; % decision to invert image valueschannel_sel='gray';handles.channel_sel=channel_sel; % decision to use selected image channelkind_sel='direct';handles.kind_sel=kind_sel; % name of analysed image distortion% Choose default command line output for mapfusionhandles.output = hObject;% Update handles structureguidata(hObject, handles);% UIWAIT makes mapfusion wait for user response (see UIRESUME)% uiwait(handles.figure1);% --- Outputs from this function are returned to the command line.function varargout = mapfusion_OutputFcn(hObject, eventdata, handles)% varargout cell array for returning output args (see VARARGOUT);% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Get default command line output from handles structurevarargout{1} = handles.output;% --- Executes on button press in pushbutton1.function pushbutton1_Callback(hObject, eventdata, handles)% hObject handle to pushbutton1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% -------------------------INPUT IMAGE ----------------------------------ch=handles.channel_sel;[filename,pathname] = uigetfile('*.*', 'Select image');filename2=[pathname '\' filename];X=imread(filename2);% select channel[Y,la]=imagechannel(X,ch);% inversion yes/noinvert=handles.invert_sel;switch invertcase 'yes'Y=255-Y;disp('inversion on');case 'no'% no actionend% show selected input channelaxes(handles.images);imshow(uint8(Y));colormap('gray');axis image;axis off;% Save the handles structure.handles.NOL=handles.NOL+1;handles.X(:,:,handles.NOL)=Y;handles.SP(:,:,handles.NOL)=Y;guidata(hObject,handles)% --- Executes on button press in pushbutton2.function pushbutton2_Callback(hObject, eventdata, handles)% hObject handle to pushbutton2 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% --------------------------------SKIP------------------------------------[ro co la]=size(handles.X);if la>1axes(handles.images);for i=1:laimagesc(handles.X(:,:,i));colormap(gray);axis image;axis off;pause(1);endend% --- Executes on button press in pushbutton3.function pushbutton3_Callback(hObject, eventdata, handles)% hObject handle to pushbutton3 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% --------------------------DECISION MAP-----------------------------------X=handles.X; % stack of input imagesfusion_mode=handles.selection; %('norm','entropy','cloud','anysotropy')XBIAS=handles.BS; % bias for pseudo-Wigner distributionR=handles.R; % worst reference imageN=handles.N; % pseudo-Wigner distribution window size (even number)kind=handles.kind_sel; % 'direct', 'inverse'a=handles.DIR; % first orientation in degreesmxp=handles.NDIR; % number of PWD's directions (1, 2, 3, ...)% fusion map[ro co la]=size(X);X=X+XBIAS;R=R+XBIAS;if isequal(fusion_mode,'cloud')fusion_mode='norm';R=255*ones(ro,co);endmsg=0;if (isequal(fusion_mode,'anisotropy') && mxp<2)Z=ones(ro,co);msg=1;elseZ=mapmakerplus(X,R,N,fusion_mode,kind,a,mxp);endaxes(handles.map);imagesc(uint8(Gama(Z)));colormap(gray);axis image;axis off;if msg==1msgbox('more than one direction has to be considered','note...','warn')end% Save the handles structure.handles.MAP=Z;guidata(hObject,handles)% --- Executes on button press in pushbutton4.function pushbutton4_Callback(hObject, eventdata, handles)% hObject handle to pushbutton4 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% ----------------------------------CLEAR ALL-----------------------------axes(handles.result);imagesc(zeros(256));axis off;colormap(gray);axes(handles.map);imagesc(zeros(256));axis off;colormap(gray);axes(handles.images);imagesc(zeros(256));axis off;colormap(gray);NOL=0;handles.NOL=NOL;X=[];handles.X=X;MAP=[];handles.MAP=MAP;FUS=[];handles.FUS=FUS;SP=[];handles.SP=SP;R=[];handles.R=R;guidata(hObject,handles)% --- Executes on selection change in popupmenu1.function popupmenu1_Callback(hObject, eventdata, handles)% hObject handle to popupmenu1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% ----------------------------- MODE ------------------------------------% Determine the selected modestr = get(hObject, 'String');val = get(hObject,'Value');% Set current data to the selected data set.switch str{val};case 'norm' % User selects eucledian norm.handles.selection = 'norm';case 'entropy' % User selects R閚yi entropy.handles.selection = 'entropy';case 'anisotropy' % User selects anisotropy.handles.selection = 'anisotropy';case 'cloud' % User selects cloud removing.handles.selection = 'cloud';end% Save the handles structure.guidata(hObject,handles)% Hints: contents = get(hObject,'String') returns popupmenu1 contents as cell array% contents{get(hObject,'Value')} returns selected item from popupmenu1% --- Executes during object creation, after setting all properties.function popupmenu1_CreateFcn(hObject, eventdata, handles)% hObject handle to popupmenu1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: popupmenu controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispcset(hObject,'BackgroundColor','white');elseset(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));end% --- Executes on button press in pushbutton5.function pushbutton5_Callback(hObject, eventdata, handles)% hObject handle to pushbutton5 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% --------------------------- FILTER ---------------------------------X=handles.MAP;if isempty(X)~=1w=11;mode='integer';MAPA=StackFilter(X,w,mode);handles.MAP=MAPA;axes(handles.map);imagesc(MAPA);colormap(gray);axis image;axis off;msgbox('fusion map has been filtered',' ','help')guidata(hObject,handles)end% --- Executes on button press in pushbutton6.function pushbutton6_Callback(hObject, eventdata, handles)% hObject handle to pushbutton6 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% -------------------------- FUSION ----------------------------fusion_mode=handles.selection;% Image recovering[roM coM laM]=size(handles.MAP);if roM>1axes(handles.result);U=handles.MAP;V=handles.X;[roU coU]=size(U);[roV coV laV]=size(V);F=zeros(roU,coU);for q=1:laVF=F+(U==q).*V(:,:,q);endinvert=handles.invert_sel;switch invertcase 'yes'F=255-F;disp('inversion off');case 'no'% no actionendhandles.FUS=F;imagesc(F);colormap(gray);axis image;axis off;msgbox('fusion completed',fusion_mode,'help')guidata(hObject,handles);endfunction edit1_Callback(hObject, eventdata, handles)% hObject handle to edit1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hints: get(hObject,'String') returns contents of edit1 as text% str2double(get(hObject,'String')) returns contents of edit1 as a double% ---------------------- WINDOW LENGTH ---------------------------------NA = get(hObject,'String');NB=str2num(NA);if (ceil(NB/2)*2==NB)&(ceil(NB/2)*2>0)handles.N=NB;guidata(hObject,handles);elsemsgbox('enter an even number','window performances','error');guidata(hObject,handles);end% --- Executes during object creation, after setting all properties.function edit1_CreateFcn(hObject, eventdata, handles)% hObject handle to edit1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispcset(hObject,'BackgroundColor','white');elseset(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));endfunction edit2_Callback(hObject, eventdata, handles)% hObject handle to edit2 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hints: get(hObject,'String') returns contents of edit2 as text% str2double(get(hObject,'String')) returns contents of edit2 as a double% ----------------------- FIRST DIRECTION ---------------------------DIRX = get(hObject,'String');DIRY=str2num(DIRX);handles.DIR=DIRY;guidata(hObject,handles);% --- Executes during object creation, after setting all properties.function edit2_CreateFcn(hObject, eventdata, handles)% hObject handle to edit2 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispcset(hObject,'BackgroundColor','white');elseset(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));endfunction edit3_Callback(hObject, eventdata, handles)% hObject handle to edit3 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hints: get(hObject,'String') returns contents of edit3 as text% str2double(get(hObject,'String')) returns contents of edit3 as a double% --------------------- NUMBER OF DIRECTIONS -------------------------NDIRX = get(hObject,'String');NDIRY=str2num(NDIRX);if (NDIRY==fix(NDIRY))&(NDIRY>0)handles.NDIR=NDIRY;guidata(hObject,handles);elsemsgbox('enter a natural number','number of directions','error');guidata(hObject,handles);end% --- Executes during object creation, after setting all properties.function edit3_CreateFcn(hObject, eventdata, handles)% hObject handle to edit3 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispcset(hObject,'BackgroundColor','white');elseset(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));end% --- Executes on button press in pushbutton7.function pushbutton7_Callback(hObject, eventdata, handles)% hObject handle to pushbutton7 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% ------------------------- SAVE ----------------------------ch=handles.channel_sel;% save imagePop1=['A' 'B' 'C' 'D' 'E' 'F' 'G' 'H' 'I' 'J' 'K' 'L' 'M' 'N' ...'O' 'P' 'Q' 'R' 'S' 'T' 'U' 'V' 'W' 'X' 'Y' 'Z'];Pop2=['0' '1' '2' '3' '4' '5' '6' '7' '8' '9'];seq1=randsample(Pop1,4);seq2=randsample(Pop2,4);rename=[seq1 seq2];mapa=handles.MAP;if isempty(mapa)~=1mapa=mapa-1;xmapa=max(mapa(:));ymapa=fix(255/xmapa);mapa=ymapa*mapa;mapname=strcat(ch,rename,'MAP.tif');imwrite(uint8(mapa),mapname);message1=mapname;endfusion=handles.FUS;if isempty(fusion)~=1fusname=strcat(ch,rename,'FUS.tif');imwrite(uint8(fusion),fusname);message2=fusname;endif (exist('message1')==1)&(exist('message2')==0)msgbox(message1,'image saved as:','help');endif (exist('message1')==0)&(exist('message2')==1)msgbox(message2,'image saved as:','help');endif (exist('message1')==1)&(exist('message2')==1)inter=' ';message= [message1 inter message2];msgbox(message,'images saved as:','help');endif (exist('message1')==0)&(exist('message2')==0)msgbox('no images to save','images saved as:','help');end% --- Executes on slider movement.function slider1_Callback(hObject, eventdata, handles)% hObject handle to slider1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hints: get(hObject,'Value') returns position of slider% get(hObject,'Min') and get(hObject,'Max') to determine range of slider% --------------------- IMAGE SELECTOR --------------------------------slider_value = get(hObject,'Value');[roX coX laX]=size(handles.X);if laX>1sli=fix(slider_value*laX);if sli==0sli=1;endaxes(handles.images);imagesc(handles.X(:,:,sli));colormap(gray);axis image;axis off;end% --- Executes during object creation, after setting all properties.function slider1_CreateFcn(hObject, eventdata, handles)% hObject handle to slider1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: slider controls usually have a light gray background, change% 'usewhitebg' to 0 to use default. See ISPC and COMPUTER.usewhitebg = 1;if usewhitebgset(hObject,'BackgroundColor',[.9 .9 .9]);elseset(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));end% --- Executes on button press in pushbutton16.function pushbutton16_Callback(hObject, eventdata, handles)% hObject handle to pushbutton16 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% ------------------------------ MATCH ----------------------------prof=handles.MHP;U=handles.X;if isempty(U)==0[roX coX laX]=size(U);MR=HistoGenEx(roX,coX,prof);wb = waitbar(0,'Please wait...');for k=1:laXV(:,:,k)=MatchHisto(MR,U(:,:,k),0);waitbar(k/laX,wb)endclose(wb)handles.X=V;axes(handles.images);imagesc(V(:,:,laX));colormap(gray);axis image;axis off;guidata(hObject,handles);end% --- Executes on button press in pushbutton17.function pushbutton17_Callback(hObject, eventdata, handles)% hObject handle to pushbutton17 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% ---------------------------- UNMATCH ----------------------------if isempty(handles.SP)==0handles.X=handles.SP;handles.SP=handles.X;[roX coX laX]=size(handles.X);axes(handles.images);imagesc(handles.X(:,:,laX));colormap(gray);axis image;axis offguidata(hObject,handles);endfunction edit10_Callback(hObject, eventdata, handles)% hObject handle to edit10 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hints: get(hObject,'String') returns contents of edit10 as text% str2double(get(hObject,'String')) returns contents of edit10 as a double% ---------------------------- BIAS ---------------------------------XBIAS = get(hObject,'string');YBIAS=str2num(XBIAS);handles.BS=YBIAS;guidata(hObject,handles);% --- Executes during object creation, after setting all properties.function edit10_CreateFcn(hObject, eventdata, handles)% hObject handle to edit10 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispcset(hObject,'BackgroundColor','white');elseset(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));endfunction edit11_Callback(hObject, eventdata, handles)% hObject handle to edit11 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hints: get(hObject,'String') returns contents of edit11 as text% str2double(get(hObject,'String')) returns contents of edit11 as a double% ---------------------------- MATCH PROFILE -------------------prof = get(hObject,'String');MHP=str2num(prof);if MHP>0handles.MHP=MHP;guidata(hObject,handles);elsemsgbox('enter a positive real number','match profile','error');guidata(hObject,handles);end% --- Executes during object creation, after setting all properties.function edit11_CreateFcn(hObject, eventdata, handles)% hObject handle to edit11 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');end% --- Executes on selection change in popupmenu3.function popupmenu3_Callback(hObject, eventdata, handles)% hObject handle to popupmenu3 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hints: contents = get(hObject,'String') returns popupmenu3 contents as cell array% contents{get(hObject,'Value')} returns selected item from popupmenu3% -------------------------------- INVERT -----------------------% Determine the selected modestr = get(hObject, 'String');val = get(hObject,'Value');% Set current data to the selected data set.switch str{val};case 'no' % User selects direct levelshandles.invert_sel = 'no';case 'yes' % User selects inverted levelshandles.invert_sel = 'yes';end% Save the handles structure.guidata(hObject,handles)% --- Executes during object creation, after setting all properties.function popupmenu3_CreateFcn(hObject, eventdata, handles)% hObject handle to popupmenu3 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: popupmenu controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');end% --- Executes on selection change in popupmenu4.function popupmenu4_Callback(hObject, eventdata, handles)% hObject handle to popupmenu4 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hints: contents = get(hObject,'String') returns popupmenu4 contents as cell array% contents{get(hObject,'Value')} returns selected item from popupmenu4% -------------------------------------CHANNEL --------------------------% Determine the selected modestr = get(hObject, 'String');val = get(hObject,'Value');% Set current data to the selected data set.switch str{val};case 'gray' % User selects gray image conversionhandles.channel_sel = 'gray';case 'R' % User selects red channelhandles.channel_sel = 'R';case 'G' % User selects green channelhandles.channel_sel = 'G';case 'B' % User selects blue channelhandles.channel_sel = 'B';end% Save the handles structure.guidata(hObject,handles)% --- Executes during object creation, after setting all properties.function popupmenu4_CreateFcn(hObject, eventdata, handles)% hObject handle to popupmenu4 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: popupmenu controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');end% --- Executes on selection change in popupmenu5.function popupmenu5_Callback(hObject, eventdata, handles)% hObject handle to popupmenu5 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hints: contents = get(hObject,'String') returns popupmenu5 contents as cell array% contents{get(hObject,'Value')} returns selected item from popupmenu5% ------------------------------ KIND -------------------------% Determine the selected kind of image problemstr = get(hObject, 'String');val = get(hObject,'Value');% Set current data to the selected data set.switch str{val};case 'direct' % User selects image deblurringhandles.kind_sel = 'direct';case 'inverse' % User selects image denoisinghandles.kind_sel = 'inverse';end% Save the handles structure.guidata(hObject,handles)% --- Executes during object creation, after setting all properties.function popupmenu5_CreateFcn(hObject, eventdata, handles)% hObject handle to popupmenu5 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: popupmenu controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');end
3 仿真结果

4 参考文献
[1]刘聪, 李言俊, 张科. 基于伪维格纳分布的图像融合[J]. 光学学报, 2009(10):5.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。
该文提出了一种使用伪维格纳分布(PWVD)的图像融合方法,适用于红外与可见光、多聚焦、CT与MRI以及红外与SAR图像的融合。通过在各个方向上对图像进行PWVD变换,选择最大均方根方向,对不同频段的能量谱图进行融合,最终得到融合图像。MATLAB代码展示了算法的具体实现,包括图像选择、融合地图的显示和保存等功能。
824

被折叠的 条评论
为什么被折叠?



