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

📄 image_dbr.m

📁 一个强大的统计模式识别工具箱
💻 M
📖 第 1 页 / 共 2 页
字号:
		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 + -