?? image_dbr.m
字號:
h_delete = h.target_delete; h_move = h.target_move; h_obnum = h.target_obnum; else % Outliers h_axes = h.outliers; h_slider = h.outliert_slider; h_title = h.outlier_title; h_delete = h.outlier_delete; h_move = h.outlier_move; h_obnum = h.outlier_obnum; end if isempty(Pointers) % all Targets / Outliers deleted, make all related objects invisible set(h_title,'String',['No ' name ' defined']) set(get(h_axes,'children'),'visible','off') set(h_axes,'visible','off'); set(h_slider,'visible','off'); set(h_delete,'visible','off'); set(h_move,'visible','off'); set(h_obnum,'visible','off'); set(h_axes,'userdata',[]); else show_im(data2im(database,Pointers(n)),1,h_axes); % show image set(h_axes,'userdata',Pointers); num_pointers = length(Pointers); % number of images set(h_title,'String',[num2str(num_pointers) ' ' name]); % set title set(h_obnum,'String',num2str(Pointers(n))); set(h_slider,'Min',0.99999/num_pointers); % min (about 1/n) set(h_slider,'Max',1); % max if num_pointers > 1 % step size set(h_slider,'SliderStep',[1/(num_pointers-1) 1/(num_pointers-1)]); set(h_slider,'value',n/num_pointers); set(h_slider,'visible','on'); else % special case: one target/outlier image set(h_slider,'SliderStep',[1 1]); set(h_slider,'value',n/num_pointers); set(h_slider,'visible','off'); end % make image and buttons visible set(get(h_axes,'children'),'visible','on') set(h_delete,'visible','on'); set(h_move,'visible','on'); set(h_obnum,'visible','on'); endreturnfunction proch = proc(h)% get desired procedure proch = get(h.classify,'userdata'); % classify / label / resetreturnfunction show_im(im,n,h_axes)% low level display routine if iscell(im), y = im{n}; else, y = squeeze(im(:,:,:,n)); end if size(y,3) == 1 % reset gray images to color y = cat(3,y,y,y); end axes(h_axes); % activate the right axes image(y); % display % prepare for callback set(get(gca,'children'),'ButtonDownFcn',{@resetlab,n}) axis off % make axes invisible axis equalreturnfunction resetlab(hObject, eventdata,n)% Reset the image labels (target/outlier) by clicking in the image s = guidata(hObject); h = s{1}; get(h.handlab(n),'value'); set(h.handlab(n),'value',1 - get(h.handlab(n),'value')); get(h.handlab(n),'value');return function [S,W] = train_classify(featsets,T,labels_train,clasf,cclasf,weights);% train, combine, classify and rank% S will be the ranked object indices of all or unlabeled objects d = []; W = []; for j=1:length(featsets) b = featsets{j}; trainset = setnlab(b(T,:),labels_train); %trainset = setprior(trainset,getprior(trainset,0)); trainset = setprior(trainset,0); if ~isvaldset(trainset,2) v = trainset*knnc([],1); else v = trainset*clasf{j}*classc; end d = [d featsets{j}*v*weights(j)]; W = [W;v]; end d = d*cclasf; d = +d(:,'target'); [dd,S] = sort(-d);% W = v*affine(weights)*cclasf; % to be corrected W = [];return function slider5_Callback(hObject, eventdata, handles)% target slider s = guidata(hObject); h = s{1}; database = s{2}; Targets = get(h.targets,'userdata'); n = round(get(h.target_slider,'value')*length(Targets)); show_im(data2im(database,Targets(n)),1,h.targets); set(h.targets,'userdata',Targets); % image() destroys userdata, restore it set(h.target_title,'String',[num2str(length(Targets)) ' Targets']); % needed??? set(h.target_obnum,'String',num2str(Targets(n)));returnfunction slider6_Callback(hObject, eventdata, handles)% outlier slider s = guidata(hObject); h = s{1}; database = s{2}; Outliers = get(h.outliers,'userdata'); n = round(get(h.outliert_slider,'value')*length(Outliers)); show_im(data2im(database,Outliers(n)),1,h.outliers); set(h.outliers,'userdata',Outliers); % image() destroys userdata, restore it set(h.outlier_title,'String',[num2str(length(Outliers)) ' Outliers']); % needed??? set(h.outlier_obnum,'String',num2str(Outliers(n)));returnfunction pushbutton2_Callback(hObject, eventdata, handles)% delete target s = guidata(hObject); h = s{1}; database = s{2}; Targets = get(h.targets,'userdata'); n = round(get(h.target_slider,'value')*length(Targets)); Targets(n) = []; n = max(n-1,1); show_targ_out(database,Targets,n,h,'Targets');returnfunction pushbutton3_Callback(hObject, eventdata, handles)% move target to outlier s = guidata(hObject); h = s{1}; database = s{2}; Targets = get(h.targets,'userdata'); Outliers = get(h.outliers,'userdata'); n = round(get(h.target_slider,'value')*length(Targets)); Outliers = [Outliers Targets(n)]; Targets(n) = []; n = max(n-1,1); show_targ_out(database,Outliers,length(Outliers),h,'Outliers'); show_targ_out(database,Targets,n,h,'Targets');returnfunction pushbutton4_Callback(hObject, eventdata, handles)% move outlier to target s = guidata(hObject); h = s{1}; database = s{2}; Outliers = get(h.outliers,'userdata'); Targets = get(h.targets,'userdata'); n = round(get(h.outliert_slider,'value')*length(Outliers)); Targets = [Targets Outliers(n)]; Outliers(n) = []; n = max(n-1,1); show_targ_out(database,Targets,length(Targets),h,'Targets'); show_targ_out(database,Outliers,n,h,'Outliers');returnfunction pushbutton5_Callback(hObject, eventdata, handles)% delete outlier s = guidata(hObject); h = s{1}; database = s{2}; Outliers = get(h.outliers,'userdata'); n = round(get(h.outliert_slider,'value')*length(Outliers)); Outliers(n) = []; n = max(n-1,1); show_targ_out(database,Outliers,n,h,'Outliers');returnfunction pushbutton6_Callback(hObject, eventdata, handles)% Reset s = guidata(hObject); h = s{1}; database = s{2}; set(h.targets,'userdata',[]); set(h.outliers,'userdata',[]); show_targ_out(database,[],0,h,'Targets'); show_targ_out(database,[],0,h,'Outliers'); set(h.classify,'userdata','reset'); uiresumereturnfunction pushbutton7_Callback(hObject, eventdata, handles)% Quit guidata(hObject,[]); uiresumereturnfunction radiobutton4_Callback(hObject, eventdata, handles)% All s = guidata(hObject); h = s{1}; database = s{2}; if (get(h.all,'value') == 0) set(h.unlabeled,'value',2); else set(h.unlabeled,'value',0); end t = get(h.all,'userdata'); S = t{1}; show_images(database,S,1,h)returnfunction radiobutton5_Callback(hObject, eventdata, handles)% unlabeled s = guidata(hObject); h = s{1}; database = s{2}; if (get(h.unlabeled,'value') == 0) set(h.all,'value',2); else set(h.all,'value',0); end t = get(h.all,'userdata'); S = t{1}; U = t{2}; S = S(U); show_images(database,S,1,h)returnfunction pushbutton8_Callback(hObject, eventdata, handles)% Next s = guidata(hObject); h = s{1}; database = s{2}; t = get(h.next,'userdata'); S = t{1}; n = t{2}; n = min(length(S)-9,n+10); show_images(database,S,n,h);return function pushbutton9_Callback(hObject, eventdata, handles)% Previous s = guidata(hObject); h = s{1}; database = s{2}; t = get(h.next,'userdata'); S = t{1}; n = t{2}; n = max(1,n-10); show_images(database,S,n,h);returnfunction pushbutton10_Callback(hObject, eventdata, handles)% Label s = guidata(hObject); h = s{1}; set(h.classify,'userdata','label'); uiresumereturnfunction pushbutton11_Callback(hObject, eventdata, handles)% All Target s = guidata(hObject); h = s{1}; for j=1:10 set(h.handlab(j),'value',1); endreturnfunction pushbutton12_Callback(hObject, eventdata, handles)% All Outlier s = guidata(hObject); h = s{1}; for j=1:10 set(h.handlab(j),'value',0); endreturn
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -