www.gusucode.com > IPCV_Eval_Kit_R2019a_0ce6858工具箱matlab程序源码 > IPCV_Eval_Kit_R2019a_0ce6858/code/demo_files/I5_06_2_2_myCNNTransferLearning_webCam.m

    %% CNN 偵傛傞夋憸偺僈僥僑儕暘椶
% USB僇儊儔偺夋憸偐傜丄
%  僇僢僾丄儔僢僾僩僢僾PC丄僺僓丄榬帪寁丄 偺擣幆

%% 弶婜壔
clc;close all;imtool close all;clear;imaqreset;

%% 妛廗嵪傒偺暘椶婍偺撉崬傒
if ~exist('I5_06_2_2_myCNNTransferLearning.mat','file')
    error('<a href="matlab:edit I5_06_2_2_myCNNTransferLearning.m">I5_06_2_2_myCNNTransferLearning.m</a>偱妛廗傪幚峴偟偰偔偩偝偄丅');
end
d = load('I5_06_2_2_myCNNTransferLearning.mat');
convnet = d.netTransfer;

%% USB 僇儊儔偐傜價僨僆傪庢崬傓僆僽僕僃僋僩偺掕媊
vidobj = imaq.VideoDevice('winvideo', 1, 'RGB24_320x240');
vidobj.ReturnedDataType = 'uint8';

%% PC偺夋柺偵價僨僆傪昞帵偡傞價儏乕儚偺掕媊
viewer = vision.DeployableVideoPlayer;

%% 儃僞儞昞帵
a=true;
b=false;
sz = get(0,'ScreenSize');
figure('MenuBar','none','Toolbar','none','Position',[20 sz(4)-170 100 140])
uicontrol('Style', 'pushbutton', 'String', 'Stop',...
        'Position', [20 20 80 40],'Callback', 'a=false;');
uicontrol('Style', 'pushbutton', 'String', 'Recog On',...
        'Position', [20 80 80 40],'Callback', 'b=true;');

%% 僇儊儔偐傜1僼儗乕儉偢偮撉崬傒張棟傪偡傞
while (a) 
  I = step(vidobj);              % 僇儊儔偐傜1夋柺庢崬傒
  I1 = I([7:233], [47:273], :);  % 僒僀僘傪 227x227傊

  [labels, scores] = classify(convnet, I1);
  
  if b
    I = insertText(I, [1 1], ['Cu La Pi Wa: ' num2str(scores, '%6.2f')], 'FontSize', 14);
   
    Smax = max(scores); 
    if (Smax > -0.2)
      I = insertText(I, [80 80], cellstr(labels), 'FontSize',32); 
    end
  end
  step(viewer, I);
  
  drawnow limitrate;      % 僾僢僔儏儃僞儞偺僀儀儞僩偺妋擣
end

%%
release(vidobj);
release(viewer);

%% Copyright 2018 The MathWorks, Inc.