⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 guisaliency.m

📁 显著区域检测。求的图像中感兴趣区域的位置
💻 M
📖 第 1 页 / 共 2 页
字号:
if ~confirmParamsChange(handles)  return;endnormTypes = get(handles.NormType,'String');params.normtype = normTypes{get(handles.NormType,'Value')};niter = str2num(get(handles.NumIter,'String'));if ~isempty(niter)  niter = round(niter(1));  if (niter < 0)    niter = 0;  end  params.numIter = niter;end% NormType drop-down listfunction NormType_Callback(hObject, eventdata, handles)getNormType(handles);setNormType(handles);% create NormType drop-down listfunction NormType_CreateFcn(hObject, eventdata, handles)if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))    set(hObject,'BackgroundColor','white');end% NumIter textboxfunction NumIter_Callback(hObject, eventdata, handles)getNormType(handles);setNormType(handles);% create NumIter textboxfunction NumIter_CreateFcn(hObject, eventdata, handles)if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))    set(hObject,'BackgroundColor','white');end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% setting shape mode                                               %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% get the shape mode parameters form the GUI controlsfunction getShapeMode(handles)global params;if ~confirmParamsChange(handles)  return;endshapeModes = {'None','shapeSM','shapeCM','shapeFM','shapePyr'};params.shapeMode = shapeModes{get(handles.ShapeMode,'Value')};newFS = str2num(get(handles.FOAsize,'String'));if ~isempty(newFS)  if (newFS < 0)    newFS = 0;  end  params.foaSize = newFS;endreturn;% set the shape mode GUI controls according to the parametersfunction setShapeMode(handles)global params;shapeModes = {'None','shapeSM','shapeCM','shapeFM','shapePyr'};mode = strmatch(params.shapeMode,shapeModes);if ~isempty(mode)  set(handles.ShapeMode,'Value',mode(1));endisNone = strcmp(params.shapeMode,shapeModes{1});setEnable(isNone,[handles.FOAsize,handles.FOAsizeText]);if (params.foaSize >= 0)  set(handles.FOAsize,'String',num2str(params.foaSize));else  set(handles.FOAsize,'String','');endreturn;% ShapeMode drop-down listfunction ShapeMode_Callback(hObject, eventdata, handles)getShapeMode(handles);setShapeMode(handles);% create ShapeMode drop-down listfunction ShapeMode_CreateFcn(hObject, eventdata, handles)if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))    set(hObject,'BackgroundColor','white');end% FOAsize textboxfunction FOAsize_Callback(hObject, eventdata, handles)getShapeMode(handles);setShapeMode(handles);% create FOAsize textboxfunction FOAsize_CreateFcn(hObject, eventdata, handles)if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))    set(hObject,'BackgroundColor','white');end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% setting visualizations                                           %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% initializes plot windowsfunction initializeVisFigures(handles)visHandles = [handles.VisImg,handles.VisSM,handles.VisCM,...              handles.VisShape,handles.VisLoc];for h = visHandles  visStrings = {'off','on'};  figH = figure;  vis = get(h,'Value')+1;  set(figH,'Name',['STB: ' get(h,'String')],...           'NumberTitle','off',...           'CloseRequestFcn',@VisFigureCloseCallback,...           'UserData',h,...           'Visible',visStrings{vis});  set(h,'UserData',figH);end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% delete the visualization figures, e.g. when the 'Quit' button is pressedfunction cleanupVisFigures(handles)visHandles = [handles.VisImg,handles.VisSM,handles.VisCM,...              handles.VisShape,handles.VisLoc];for h = visHandles  figH = get(h,'UserData');  delete(figH);endreturn;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% callback function for closing figures - just make them invisiblefunction VisFigureCloseCallback(hSrc,event)hObject = get(hSrc,'UserData');set(hObject,'Value',0);set(hSrc,'Visible','off');%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% set the GUI controls and figure visibilityfunction setVisFigure(hObject,handles)enableStrings = {'off','on'};figH = get(hObject,'UserData');val = get(hObject,'Value')+1;try  set(figH,'Visible',enableStrings{val});catch  figH = figure;  set(figH,'Visible',enableStrings{val});  set(hObject,'UserData',figH);end% do the above for all visualization figuresfunction setAllVisFigures(handles)visHandles = [handles.VisImg,handles.VisSM,handles.VisCM,...              handles.VisShape,handles.VisLoc];for h = visHandles  setVisFigure(h,handles);end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% update the 'image' visualization figurefunction updateImg(handles)global state img;figH = get(handles.VisImg,'UserData');if strcmp(get(figH,'Visible'),'on')  switch state    case {'ImageLoaded','MapsComputed'}      figure(figH);      displayImage(img);      figure(handles.figure1);    otherwise      % do nothing  endend%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% update the 'saliency map' visualization figurefunction updateSM(handles)global state salMap wta img;figH = get(handles.VisSM,'UserData');if strcmp(get(figH,'Visible'),'on')  switch state    case 'MapsComputed'      figure(figH);      wtaMap = emptyMap(img.size(1:2),'Winner Take All');      wtaMap.data = imresize(wta.sm.V,img.size(1:2),'bilinear');      displayMaps([salMap,wtaMap],1);      figure(handles.figure1);    otherwise      % do nothing  endend%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% update the 'conspicuity maps' visualization figurefunction updateCM(handles)global state salData;figH = get(handles.VisCM,'UserData');if strcmp(get(figH,'Visible'),'on')  switch state    case 'MapsComputed'      figure(figH);      displayMaps([salData(:).CM],1);      figure(handles.figure1);    otherwise      % do nothing  endend%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% update the 'shape maps' visualization figurefunction winLabel = updateShape(handles)global state shapeData;if isempty(shapeData)  winLabel = '';else  winLabel = [' - ' shapeData.winningMap.label];  figH = get(handles.VisShape,'UserData');  if strcmp(get(figH,'Visible'),'on')    switch state      case 'MapsComputed'        figure(figH);        displayMaps({shapeData.winningMap,shapeData.segmentedMap,...                     shapeData.binaryMap,shapeData.shapeMap});        figure(handles.figure1);      otherwise        % do nothing    end  endend%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% update the 'attended location' visualization figurefunction updateLoc(handles)global globalVars;eval(globalVars);figH = get(handles.VisLoc,'UserData');if strcmp(get(figH,'Visible'),'on')  switch state    case 'ImageLoaded'      updateLocImg(handles);    case 'MapsComputed'      figure(figH);      plotSalientLocation(winner,lastWinner,img,params,shapeData);      if ~isempty(shapeData)        title(['shape from: ' shapeData.winningMap.label]);      end      figure(handles.figure1);    otherwise      % do nothing  endend%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% update the image in the 'attended location' visualization figurefunction updateLocImg(handles)global state img params;figH = get(handles.VisLoc,'UserData');if strcmp(get(figH,'Visible'),'on')  switch state    case {'ImageLoaded','MapsComputed'}      if strcmp(params.visualizationStyle,'Contour')        figure(figH);        displayImage(img);        setVisFigure(handles.VisLoc,handles);        figure(handles.figure1);      end    otherwise      % do nothing  endend%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% GUI controls for the visualization figures%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% visualize image checkboxfunction VisImg_Callback(hObject, eventdata, handles)setVisFigure(hObject,handles);updateImg(handles);% visualize SM checkboxfunction VisSM_Callback(hObject, eventdata, handles)setVisFigure(hObject,handles);updateSM(handles);% visualize CM checkboxfunction VisCM_Callback(hObject, eventdata, handles)setVisFigure(hObject,handles);updateCM(handles);% visualize Shape checkboxfunction VisShape_Callback(hObject, eventdata, handles)setVisFigure(hObject,handles);updateShape(handles);% visualize location checkboxfunction VisLoc_Callback(hObject, eventdata, handles)global lastWinner;lastWinner = [-1,-1];setVisFigure(hObject,handles);updateLoc(handles);% visualization style drop-down listfunction VisStyle_Callback(hObject, eventdata, handles)global globalVars;eval(globalVars);styleStrings = get(hObject,'UserData');val = get(hObject,'Value');params.visualizationStyle = styleStrings{val};lastWinner = [-1,-1];set(handles.VisLoc,'Value',1);setVisFigure(handles.VisLoc,handles);updateLocImg(handles);updateLoc(handles);function VisStyle_CreateFcn(hObject, eventdata, handles)if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))    set(hObject,'BackgroundColor','white');end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% parameters management%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% reset parameters to the defaultfunction DefaultSettings_Callback(hObject, eventdata, handles)global params img;if confirmParamsChange(handles)  if isempty(img)    params = defaultSaliencyParams;  else    params = defaultSaliencyParams(img.size);  end  checkColorParams(handles);  fillParams(handles);end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% save parametersfunction SaveSettings_Callback(hObject, eventdata, handles)global params;debugMsg('Saving settings.');[filename,path] = uiputfile('*.mat','Save parameters as ...',...                            'parameters.mat');if (filename ~= 0)  save([path filename],'params');end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% load parametersfunction LoadSettings_Callback(hObject, eventdata, handles)global params;if confirmParamsChange(handles)  debugMsg('Loading settings.');  [filename,path] = uigetfile('*.mat','Loading parameters from ...',...                              'parameters.mat');  if (filename ~= 0)    try      in = load([path filename]);    catch      uiwait(warndlg([filename ' is not a data file!'],...             'Not a valid data file','modal'));      return;    end    fnames = fieldnames(in);    if strmatch('params',fnames)      % we have a params field - great, let's take it      params = in.params;      fillParams(handles);    elseif (length(fnames) == 1)      % just one field - let's use this one      params = getfield(in,fnames{1});      fillParams(handles);    else      % couldn't find params in this file      uiwait(warndlg(['Could not find params in ' filename],...             'Params not found','modal'));    end    checkColorParams(handles);  endend%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% save mapsfunction SaveMaps_Callback(hObject, eventdata, handles)global salMap salData shapeData;debugMsg('Saving maps.');[filename,path] = uiputfile('*.mat','Save maps in ...',...                            'maps.mat');if (filename ~= 0)  save([path filename],'salMap','salData','shapeData');end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Switch Debugging messages on/offfunction ToggleDebug_Callback(hObject, eventdata, handles)global DEBUG_FIDDEBUG_FID = get(hObject,'Value');%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Reset buttonfunction Restart_Callback(hObject, eventdata, handles)setState(handles,'ImageLoaded');fprintf('---------------------------\n');%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% saliency computation functions and controls%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Start / Next Location buttonfunction NextLoc_Callback(hObject, eventdata, handles)global globalVars;eval(globalVars);switch state  case 'ImageLoaded'    debugMsg('Computing new maps ...');    setState(handles,'Busy');    [salMap,salData] = makeSaliencyMap(img,params);    wta = initializeWTA(salMap,params);    state = 'MapsComputed';    winner = [-1,-1];    updateCM(handles);    updateLocImg(handles);    NextLoc_Callback(hObject, eventdata, handles);  case 'MapsComputed'    debugMsg('Going to the next location ...');    setState(handles,'Busy');    lastWinner = winner;    thisWinner = [-1,-1];    while (thisWinner(1) == -1)      [wta,thisWinner] = evolveWTA(wta);    end    shapeData = estimateShape(salMap,salData,thisWinner,params);    wta = applyIOR(wta,thisWinner,params,shapeData);    winner = winnerToImgCoords(thisWinner,params);    state = 'MapsComputed';    updateSM(handles);    winLabel = updateShape(handles);    updateLoc(handles);    fprintf('winner: %i,%i; t = %4.1f ms%s\n',...            winner(2),winner(1),wta.exc.time*1000,winLabel);  otherwise    debugMsg(['Unexpected state: ' state]);endsetState(handles);return;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% About buttonfunction About_Callback(hObject, eventdata, handles)uiwait(msgbox({...  'SaliencyToolbox 2.0',...  'http://www.saliencytoolbox.net','',...  'Copyright 2006-2007 by Dirk B. Walther and',...   'the California Institutute of Technology','',...  'Type ''STBlicense'' to view the license agreement.',''},...  'About SaliencyToolbox','modal'));%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Quit buttonfunction Quit_Callback(hObject, eventdata, handles)setState(handles,'Busy');uiresume(handles.figure1);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -