سلام
از دوستان کسی می تونه برای درک بهتر این برنامه ،برنامه را توضیح دهد که چگونه کارمیکند ؟و ifig , num_start,.. توضیح دهد؟
ممنون میشم دوستان کمکم کنند.
از دوستان کسی می تونه برای درک بهتر این برنامه ،برنامه را توضیح دهد که چگونه کارمیکند ؟و ifig , num_start,.. توضیح دهد؟
کد:
clear;
addpath common_innerdist;
ifig = -1;
sData ='data/';
sImage ='data/mpeg7/';
%% Parameters ----------------------------------------------
n_class = 70;
n_obj = 20;
n_objall = n_obj*n_class;
n_bull = 2*n_obj;
labels = ceil((1:n_objall)/n_obj);
num_start = 8;
search_step = 1;
%-- shape context parameters
n_dist = 8;
n_theta = 12;
bTangent = 1;
bSmoothCont = 1;
n_contsamp = 100;
bSimplecont = 1;
thre = .6;
%-- FILEs --------------------------------------------
sDisAngSamp = ['_' i2s(n_dist,2) 'x' i2s(n_theta,2) 'x' i2s(n_contsamp,3)];
sCont = [sData 'cont_' i2s(n_contsamp) '.mat'];
sSC = [sData 'IDSC' sDisAngSamp '.mat'];
sSC1 = [sData 'IDSC' sDisAngSamp '_1.mat'];
sCont1 = [sData 'cont_' i2s(n_contsamp) '_1.mat'];
fprintf('%s,\n\n', sDisAngSamp);
%-- Extract contours -------------------------------------------------------------
if 1
bReflect = 0;
[cont_all] = batch_contour_f(sImage,n_class,n_obj,n_contsamp,bReflect);
save(sCont, 'cont_all');
bReflect = 1;
[cont_all] = batch_contour_f(sImage,n_class,n_obj,n_contsamp,bReflect);
save(sCont1, 'cont_all');
end
%% Compute or Load all the shape context data ------------------------------------
if 1
[SC] = Batch_Comp_IDSC( sImage, sCont, n_class, n_obj, n_dist, n_theta, ...
bTangent, bSmoothCont, bSimplecont, 0);
[SC1] = Batch_Comp_IDSC( sImage, sCont1, n_class, n_obj, n_dist, n_theta, ...
bTangent, bSmoothCont, bSimplecont, 1);
save(sSC, 'SC');
save(sSC1, 'SC1');
else
load(sSC);
load(sSC1);
end
%% classifying each object by comparing its SC to training objects -----------------
fprintf('Compute distance matrix b/w SC .............\n');
%-Compute distance matrix
dismat = zeros(n_objall,n_objall);
for i1=1:n_objall
t0 = clock;
for i2=1:n_objall
if i1~=i2
[dis_sc,costmat] = dist_bw_sc_C( SC{i1},SC{i2}, 0);
[cvec,cost1] = DPMatching_C(costmat,thre,num_start,search_step);
dismat(i1,i2) = cost1;
[dis_sc,costmat] = dist_bw_sc_C( SC{i1},SC1{i2}, 0);
[cvec,cost2] = DPMatching_C(costmat,thre,num_start,search_step);
dismat(i1,i2) = cost2;
dismat(i1,i2) = min(cost1,cost2);
end
end
disp(['Round ' num2str(i1) ' of 1400 finished, ' num2str(etime(clock,t0)) 'sec.']);
end
dismat = min(dismat,dismat');
%% Get final bullseye score
bull_score = Compu_Bullscore(dismat, n_class, n_obj, n_bull, labels);
fprintf('\nBullseye score = %.2f', 100*bull_score);

