-
Notifications
You must be signed in to change notification settings - Fork 33
/
Copy pathautoroi.pas
executable file
·126 lines (105 loc) · 2.78 KB
/
autoroi.pas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
unit autoroi;
interface
//{$include opts.inc}
uses
{$IFNDEF FPC}
Spin,
{$ELSE}
Spin,lResources,
{$ENDIF}
{$IFNDEF FPC} Windows,{$ENDIF}
SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Buttons, StdCtrls, ExtCtrls, VectorMath; //define_types,
type
{ TAutoROIForm }
TAutoROIForm = class(TForm)
AutoROIBtn: TButton;
CancelBtn: TButton;
OriginBtn: TButton;
ROIconstraint: TComboBox;
//RadiusEdit: TSpinEdit;
//VarianceEdit: TSpinEdit;
DiffLabel: TLabel;
Label2: TLabel;
TimerROI: TTimer;
VarianceEdit: TSpinEdit;
RadiusEdit: TSpinEdit;
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
procedure OriginBtnClick(Sender: TObject);
procedure MorphologyFill(isUndo: boolean = true);
procedure FormShow(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormHide(Sender: TObject);
procedure AutoROIBtnClick(Sender: TObject);
procedure CancelBtnClick(Sender: TObject);
procedure AutoROIchange(Sender: TObject);
procedure TimerROITimer(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
AutoROIForm: TAutoROIForm;
gOrigin: TVec3;
implementation
{$R *.lfm}
uses mainunit;
procedure TAutoROIForm.OriginBtnClick(Sender: TObject);
begin
gOrigin := GLForm1.SliceFrac;
MorphologyFill();
end;
procedure TAutoROIForm.FormClose(Sender: TObject; var CloseAction: TCloseAction
);
begin
//
end;
procedure TAutoROIForm.MorphologyFill(isUndo: boolean = true);
begin
if (isUndo) then
GLForm1.voiUndo();
GLForm1.MorphologyFill(gOrigin, VarianceEdit.value, RadiusEdit.value, ROIconstraint.itemIndex);
end;
procedure TAutoROIForm.FormShow(Sender: TObject);
begin
gOrigin := GLForm1.SliceFrac;
MorphologyFill(false);
end;
procedure TAutoROIForm.FormCreate(Sender: TObject);
begin
//
end;
procedure TAutoROIForm.FormHide(Sender: TObject);
begin
//GLForm1.NoDraw1.Click;
end;
procedure TAutoROIForm.AutoROIBtnClick(Sender: TObject);
begin
AutoROIForm.ModalResult := mrOK;
AutoROIForm.close;
end;
procedure TAutoROIForm.CancelBtnClick(Sender: TObject);
begin
AutoROIForm.ModalResult := mrCancel;
GLForm1.voiUndo(true);
//GLForm1.ViewGPU1.Invalidate;
AutoROIForm.close;
end;
procedure TAutoROIForm.AutoROIchange(Sender: TObject);
begin
if not AutoROIForm.visible then exit;
TimerROI.Enabled := true;
end;
procedure TAutoROIForm.TimerROITimer(Sender: TObject);
begin
TimerROI.Enabled := false;
MorphologyFill();
end;
procedure TAutoROIForm.FormDestroy(Sender: TObject);
begin
//if gImageBackupSz <> 0 then Freemem(gImageBackupBuffer);
//gImageBackupSz := 0;
end;
end.