ВУЗ:
Составители:
62
procedure TMainForm.DGImgDrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
with (Sender as TDrawGrid).Canvas do
begin
if imgmatrix[ARow,ACol]=1 then Brush.Color:=clRed;
FillRect(rect);
end;
end;
Очистка изображения (стирается рисунок на сетке):
procedure TMainForm.BtnClearClick(Sender: TObject);
var i,j:integer;
begin
DGImg.Enabled:=false;
for i:=0 to n-1 do
for j:=0 to n-1 do imgmatrix[i,j]:=0;
DGImg.Enabled:=true;
Mainform.DGImg.Repaint;
end;
Распознавание изображения на сетке:
procedure TMainForm.BtnCheckClick(Sender: TObject);
var i,j:integer;
sum:real;//вход персептрона
rety,//полученный выход персептрона
test:shortint;//направление корректировки весов (+1 или -1)
begin
sum:=0;
//растягивание изображение на сетке до ее границ
Mainform.BtnScaleClick(Sender);
for i:=0 to n-1 do
for j:=0 to n-1 do
sum:=sum+imgmatrix[i,j]*weights[i,j];
if sum>0 then rety:=1 else rety:=0;
if rety=1 then
test:=Application.MessageBox(' ',' ',MB_ICONQUESTION or MB_YESNO) else
test:=Application.MessageBox(' ',' ',MB_ICONQUESTION or MB_YESNO);
if test=IDNO then
// обучаем персептрон в случае неправильного ответа
begin
if rety=0 then test:=1 else test:=-1;
for i:=0 to n-1 do
for j:=0 to n-1 do
//корректируем веса по формуле
weights[i,j]:=weights[i,j]+speed*test*imgmatrix[i,j];
//сохраняем измененные веса в файл
SaveWeights('./weights.wts');
end;
end;
Программная реализация сети Хэмминга
В качестве примера программной реализации сети Хэмминга рас-
смотрим решение упражнения 4 из
§ 7, то есть программу, распознающую
черно-белые изображения цифр от 0 до 9 (реализованную в среде Delphi).
Эталонные образы содержатся в файлах 0.bmp, 1.bmp,…,9.bmp.
procedure TMainForm.DGImgDrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); begin with (Sender as TDrawGrid).Canvas do begin if imgmatrix[ARow,ACol]=1 then Brush.Color:=clRed; FillRect(rect); end; end; Очистка изображения (стирается рисунок на сетке): procedure TMainForm.BtnClearClick(Sender: TObject); var i,j:integer; begin DGImg.Enabled:=false; for i:=0 to n-1 do for j:=0 to n-1 do imgmatrix[i,j]:=0; DGImg.Enabled:=true; Mainform.DGImg.Repaint; end; Распознавание изображения на сетке: procedure TMainForm.BtnCheckClick(Sender: TObject); var i,j:integer; sum:real;//вход персептрона rety,//полученный выход персептрона test:shortint;//направление корректировки весов (+1 или -1) begin sum:=0; //растягивание изображение на сетке до ее границ Mainform.BtnScaleClick(Sender); for i:=0 to n-1 do for j:=0 to n-1 do sum:=sum+imgmatrix[i,j]*weights[i,j]; if sum>0 then rety:=1 else rety:=0; if rety=1 then test:=Application.MessageBox(' ',' ',MB_ICONQUESTION or MB_YESNO) else test:=Application.MessageBox(' ',' ',MB_ICONQUESTION or MB_YESNO); if test=IDNO then // обучаем персептрон в случае неправильного ответа begin if rety=0 then test:=1 else test:=-1; for i:=0 to n-1 do for j:=0 to n-1 do //корректируем веса по формуле weights[i,j]:=weights[i,j]+speed*test*imgmatrix[i,j]; //сохраняем измененные веса в файл SaveWeights('./weights.wts'); end; end; Программная реализация сети Хэмминга В качестве примера программной реализации сети Хэмминга рас- смотрим решение упражнения 4 из § 7, то есть программу, распознающую черно-белые изображения цифр от 0 до 9 (реализованную в среде Delphi). Эталонные образы содержатся в файлах 0.bmp, 1.bmp, ,9.bmp. 62
Страницы
- « первая
- ‹ предыдущая
- …
- 60
- 61
- 62
- 63
- 64
- …
- следующая ›
- последняя »