class function GetTopClosest(patternSet: PatternsArray; fVector: TFloatArray; top: integer): PatternsArray;
=0; for x:=0 to w-1 do for y:=0 to h-1 do begin v1:=image[y,x]; v2:=template[y,x]; if (v1=v2) then Inc(result); end; end;
procedure QuickSort(L, R: Integer); var I, J: Integer; P, T: Pattern; begin repeat I := L; J := R; P := patternSet[(L + R) div 2]; repeat while patternSet[I].Distance
.Distance do Inc(I);
while patternSet[J].Distance P.Distance do Dec(J); if I <= J then begin T := patternSet[I]; patternSet[I] := patternSet[J]; patternSet[J] := T; Inc(I); Dec(J); end; until I > J; if L < J then QuickSort(L, J); L := I; until I >= R; end;
var i,l: integer; begin l:= Length(patternSet)-1; for i:=0 to l do patternSet[i].Distance:=33*33-GetTemplateDistance(image,GetTemplate(patternSet[i].c).Image); if (l+1)
class function Patterns.GetTemplateMatching(image: TByteMatrix; patternSet: PatternsArray; top: integer): PatternsArray;
function GetTemplateDistance(image,template: TByteMatrix): integer; var x,y,w,h: integer; v1,v2: byte; begin w:= Length(image[0]); h:= Length(image);