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

📄 click_data5.m

📁 关于人脸识别的一个VC程序
💻 M
字号:
function [patterns,labels]=click_data5(patterns,labels);



global kernel;
global C;
global deg;

%clf
%hold on
%axis([-1 1 -1 1])
%axis('off')


num = size(patterns,2);

pos_num = num/2 + sum(labels)/2;
neg_num = num - pos_num;

%text([-0.7 -0.7 -0.7],[0.1 -0.2 -0.4],['Click Data (Left Mouse / Right Mouse)'; 'Press Middle Mouse when done         '; 'Delete Points with d                 ']);
%pause(0.3);
%
clf
hold on
axis([-1.3 1 -1 1])
axis('off')
for i = 1:num,
  if labels(i) == 1
    p(i) = plot(patterns(1,i), patterns(2,i), 'b.') ;
    set(p(i), 'MarkerSize', 20);
  else
    p(i) = plot(patterns(1,i), patterns(2,i), 'ro') ;
    set(p(i),'LineWidth',2);
  end
end



slider_deg = uicontrol('style','slider','units','normal','pos',[0.03 0.82 0.15 0.07], 'value', log(20*deg)/log(100), 'string', 'sigma');
slider_C = uicontrol('style','slider','units','normal','pos',[0.03 0.72 0.15 0.07], 'value', log(C)/log(10000), 'string', 'C');

text_deg = uicontrol('style','text','units','normal','pos',[0.03 0.89 0.15 0.03],'string','sigma');
text_C = uicontrol('style','text','units','normal','pos',[0.03 0.79 0.15 0.03],'string','C');

train_button = uicontrol('style','pushbutton','units','normal','pos',[0.03 0.5 0.15 0.15],'string','train');
clear_button = uicontrol('style','pushbutton','units','normal','pos',[0.03 0.306 0.15 0.15],'string','clear');

% box around the allowed field for the patterns
l = line([-1 1 1 -1 -1],[-1 -1 1 1 -1]); % [x1 x2],[y1 y2]
set(l,'color',[1 1 1],'linestyle',':')

while 1
  [x(1),x(2),button]=ginput(1);
  in_range = (x(1)>-1 & x(1)<1 & x(2)>-1 & x(2)<1);
  in_train = (x(1)>-1.6 & x(1)<-1.16 & x(2)>-0.05 & x(2)<0.33);
  in_clear = (x(1)>-1.6 & x(1)<-1.16 & x(2)>-0.52 & x(2)<-0.15);
  if button == 2 & in_range
    [min_dist min_ind] = min(dist(patterns',x'));
    patterns = patterns(:,[1:(min_ind-1) (min_ind+1):num]);
    if labels(min_ind) == 1
      pos_num = pos_num - 1;
    else
      neg_num = neg_num - 1;
    end
    labels = labels(:,[1:(min_ind-1) (min_ind+1):num]);
    delete(p(min_ind));
    p = p(:,[1:(min_ind-1) (min_ind+1):num]);
  elseif button == 1 & in_range
    patterns=[patterns x'];
    p(num+1) = plot(x(1), x(2), 'b.');
    set(p(num+1), 'MarkerSize', 20);
    pos_num = pos_num+1;
    labels=[labels 1];
  elseif button == 3 & in_range
    patterns=[patterns x'];
    p(num+1) = plot(x(1), x(2), 'ro');
    set(p(num+1),'LineWidth',2);
    neg_num = neg_num+1;
    labels=[labels -1];
  elseif button == 114 | in_train
    if pos_num*neg_num>0 % run it!
      C = 10000^get(slider_C,'value');
      deg = 100^get(slider_deg,'value')/20;
      break
    else
      pos_num
      neg_num
      disp('one class is empty - enter a pattern')
      in_train = 0;
    end
  elseif in_clear
    for i=1:num,
      delete(p(i));
    end
    num = 0;
    pos_num = 0;
    neg_num = 0;
    patterns = [];
    labels = [];
  end
  num = pos_num + neg_num;
end

for i=1:num,
  delete(p(i));
end

set(slider_deg,'visible','off')
set(slider_C,'visible','off')
set(text_deg,'visible','off')
set(text_C,'visible','off')
set(train_button,'visible','off')
set(clear_button,'visible','off')








⌨️ 快捷键说明

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