【图像融合】基于伪 Wigner 分布 (PWD) 实现图像融合附matlab代码

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{:});else    gui_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 invert    case '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:la        imagesc(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;else    Z=mapmakerplus(X,R,N,fusion_mode,kind,a,mxp);end   axes(handles.map);imagesc(uint8(Gama(Z)));colormap(gray);  axis image;axis off;if msg==1    msgbox('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 ispc    set(hObject,'BackgroundColor','white');else    set(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)~=1    w=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:laV              F=F+(U==q).*V(:,:,q);          endinvert=handles.invert_sel;switch invert    case 'yes'        F=255-F;        disp('inversion off');    case 'no'        % no actionend          handles.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);else     msgbox('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 ispc    set(hObject,'BackgroundColor','white');else    set(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 ispc    set(hObject,'BackgroundColor','white');else    set(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);else     msgbox('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 ispc    set(hObject,'BackgroundColor','white');else    set(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)~=1    mapa=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)~=1    fusname=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==0    sli=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 usewhitebg    set(hObject,'BackgroundColor',[.9 .9 .9]);else    set(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:laX        V(:,:,k)=MatchHisto(MR,U(:,:,k),0);        waitbar(k/laX,wb)    end    close(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)==0    handles.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 off    guidata(hObject,handles);end function 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 ispc    set(hObject,'BackgroundColor','white');else    set(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>0    handles.MHP=MHP;    guidata(hObject,handles);else     msgbox('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代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

matlab科研助手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值