ВУЗ:
Составители:
47
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;
Отображение отмасштабированного и локализованного рисунка на сетке (по из-
мененным значениям входной матрицы):
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;
47 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 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; Отображение отмасштабированного и локализованного рисунка на сетке (по из- мененным значениям входной матрицы): 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;
Страницы
- « первая
- ‹ предыдущая
- …
- 45
- 46
- 47
- 48
- 49
- …
- следующая ›
- последняя »