Нейросетевые технологии. Каширина И.Л. - 61 стр.

UptoLike

Составители: 

61
Инициализация весовой матрицы случайными числами из промежутка
[–0.3,0.3]:
procedure TMainForm.BtnInitRandomClick(Sender: TObject);
var i,j:integer;
begin
for i:=0 to n-1 do
for j:=0 to n-1 do
weights[i,j]:=-0.3+0.6*Random;
SBStatus.SimpleText:='Âåñà èíèöèèðîâàíû ñëó÷àéíûìè ÷èñëàìè';
end;
Заполнение входного вектора по изображению на сетке:
procedure TMainForm.DGImgSelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
begin
imgmatrix[Arow,Acol]:=abs(1-imgmatrix[Arow,Acol]);
end;
Масштабирование и выравнивание (локализация) изображения:
procedure TMainForm.BtnScaleClick(Sender: TObject);
var
i,j:integer;
xmin,xmax,ymin,ymax:integer;
tmp:bmatrix;
begin
for i:=0 to n-1 do for j:=0 to n-1 do tmp[i,j]:=0;
// èùåì ãðàíèöû êâàäðàòа, ограничивающего ðèñóíок
xmin:=n;xmax:=-1;ymin:=n;ymax:=-1;
for i:=0 to n-1 do
for j:=0 to n-1 do
if imgmatrix[i,j]=1 then
begin
if j<xmin then xmin:=j;
if j>xmax then xmax:=j;
if i<ymin then ymin:=i;
if i>ymax then ymax:=i;
end;
// ìàñøòàáèðóåì до границ всей сетки
for i:=0 to n-1 do
for j:=0 to n-1 do
begin
tmp[i,j]:=imgmatrix[ymin+trunc((i/n)*(ymax-
ymin+1)),xmin+trunc((j/n)*(xmax xmin+1))];
end;
DGImg.Enabled:=false;
for i:=0 to n-1 do
for j:=0 to n-1 do
imgmatrix[i,j]:=tmp[i,j];
DGImg.Enabled:=true;
Mainform.DGImg.Repaint;
end;
Отображение отмасштабированного и локализованного рисунка на сетке
(по измененным значениям входной матрицы):
Инициализация весовой матрицы случайными числами из промежутка
[–0.3,0.3]:
procedure TMainForm.BtnInitRandomClick(Sender: TObject);
var i,j:integer;
begin
  for i:=0 to n-1 do
    for j:=0 to n-1 do
      weights[i,j]:=-0.3+0.6*Random;
  SBStatus.SimpleText:='Âåñà èíèöèèðîâàíû ñëó÷àéíûìè ÷èñëàìè';
end;

Заполнение входного вектора по изображению на сетке:
procedure TMainForm.DGImgSelectCell(Sender: TObject; ACol, ARow: Integer;
  var CanSelect: Boolean);
begin
  imgmatrix[Arow,Acol]:=abs(1-imgmatrix[Arow,Acol]);
end;

Масштабирование и выравнивание (локализация) изображения:
procedure TMainForm.BtnScaleClick(Sender: TObject);
var
  i,j:integer;
  xmin,xmax,ymin,ymax:integer;
  tmp:bmatrix;
begin
  for i:=0 to n-1 do for j:=0 to n-1 do tmp[i,j]:=0;
// èùåì ãðàíèöû êâàäðàòа, ограничивающего ðèñóíок
  xmin:=n;xmax:=-1;ymin:=n;ymax:=-1;
  for i:=0 to n-1 do
  for j:=0 to n-1 do
    if imgmatrix[i,j]=1 then
    begin
       if jxmax then xmax:=j;
       if iymax then ymax:=i;
    end;
// ìàñøòàáèðóåì до границ всей сетки
  for i:=0 to n-1 do
  for j:=0 to n-1 do
  begin
    tmp[i,j]:=imgmatrix[ymin+trunc((i/n)*(ymax-
ymin+1)),xmin+trunc((j/n)*(xmax xmin+1))];
  end;
  DGImg.Enabled:=false;
  for i:=0 to n-1 do
  for j:=0 to n-1 do
    imgmatrix[i,j]:=tmp[i,j];
  DGImg.Enabled:=true;
  Mainform.DGImg.Repaint;
end;


Отображение отмасштабированного и локализованного рисунка на сетке
(по измененным значениям входной матрицы):
                                    61