gusucode.com > Matlab脸部识别程序源码 > code/code/vj_test.m
function [h_final acc] = vj_test(adaboost_train,testdata) % [h_final acc] = vj_test(adaboost_train,testdata) % % Nathan Sutter, Fall 2007 % Last Updated, 11/14/07 %------------------------------------------------------------------------- precomp_data = testdata; all_features = precomp_data.imagefeatures; numfeat = precomp_data.numfeat; labels = precomp_data.labels; [numtotal d] = size(all_features); [numlearners ydim] = size(adaboost_train.weak_learners.learner(:)); h = zeros(numlearners,numtotal); %compute decisions for each individual learner for i=1:numtotal %for each image for t=1:numlearners %compute a decision for each learner learner_feature = adaboost_train.weak_learners.feature(t); learner_weights = adaboost_train.weak_learners.learner(t).weights; curdata = zeros(numtotal,1); for k=1:numtotal image_features = all_features{k}; %get the kth set of features (features from kth image) curdata(k) = image_features(learner_feature); %get the jth feature from the kth set of features. end curdata = [curdata ones(numtotal,1)]; %pad with ones for the perceptron h(t,:) = perceptron(learner_weights,curdata); end end h_final = zeros(numtotal,1); %vector for global classifications for i=1:numtotal %do classification for each based on the ensemble insum = 0; for z=1:numlearners insum = insum + adaboost_train.alphas(z)*h(z,i); end if insum >= .5*sum(adaboost_train.alphas(:)) h_final(i) = 1; else h_final(i) = -1; end end keyboard end