Цитата:
Не хочу смотреть, потому что в коде даже форматирования нормального нету.
|
Ну если это поможет то вот:
Есть картинка капчи далее ImageSrav[53]
Далее есть 50 шаблонов картинок ImageSrav[3..52]
Запускаем цикл установки позиции 2 шт по x и y соответственно
Код:
for posx := 3 to 77 do begin
for posy := 3 to 15 do begin
Запускаем цикл в нутри тех 2 циклов который сравнивает шаблон с капчей,
Код:
repeat
iz:=iz+1;
all:=0;
s:=0;
proz:=0;
x:=ImageSrav[iz].Width-1;
y:=ImageSrav[iz].Height-1;
а именно он считает сколько всего не белых точек all
Код:
for l := 0 to x do begin
for j := 0 to y do begin
if ImageSrav[iz].Canvas.Pixels[l,j]<>RGB(255,255,255) then begin
all:=all+1;
end;
end;
end;
Затем считает сколько совпадений пикселей по не белым точкам s
Код:
for l := 0 to x do begin
for j := 0 to y do begin
if (ImageSrav[iz].Canvas.Pixels[l,j]=ImageSrav[53].Canvas.Pixels[l+posx,j+posy]) and
(ImageSrav[iz].Canvas.Pixels[l,j]<>RGB(255,255,255)) then
begin
s:=s+1;
end;
end;
end;
потом считает процент совпадения proz
Если больше 60 процентов то строке cap приравнивается предидущая надпись исходя из номера изображения
Код:
if proz>60 then begin
case iz of
3..7:cap:=cap+'0';
8..12:cap:=cap+'1';
13..17:cap:=cap+'2';
18..22:cap:=cap+'3';
23..27:cap:=cap+'4';
28..32:cap:=cap+'5';
33..37:cap:=cap+'6';
38..42:cap:=cap+'7';
43..47:cap:=cap+'8';
48..52:cap:=cap+'9';
end;
end;
Ну и в конце все это выводится в эдит!!!