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