BSOne.SFC/EM.Lib/ImageEn_SRC/Demos/ImageAnalysis/FFT/umain.pas

133 lines
3.0 KiB
Plaintext

unit umain;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ieview, imageenview, iefft, ComCtrls, imageenproc, hyieutils,
iexBitmaps, hyiedefs, iesettings, iexLayers, iexRulers;
type
TForm1 = class(TForm)
Label1: TLabel;
ImageEnView1: TImageEnView;
Button1: TButton;
Button2: TButton;
ImageEnView2: TImageEnView;
Label2: TLabel;
ProgressBar1: TProgressBar;
Button3: TButton;
GroupBox1: TGroupBox;
Label3: TLabel;
Edit1: TEdit;
Button4: TButton;
Label4: TLabel;
Edit2: TEdit;
Button5: TButton;
Label5: TLabel;
Label6: TLabel;
Button6: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure ImageEnView1Progress(Sender: TObject; per: Integer);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure ImageEnView2SelectionChanging(Sender: TObject);
procedure Button6Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
FTImage:TIEFtImage;
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
{$R WindowsTheme.res}
procedure TForm1.FormCreate(Sender: TObject);
begin
FTImage:=nil;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
if assigned(FTImage) then
FTImage.Free;
end;
// Open Original Image
procedure TForm1.Button1Click(Sender: TObject);
begin
with ImageEnView1.IO do
LoadFromFile( ExecuteOpenDialog('','',false,1,'') );
end;
procedure TForm1.ImageEnView1Progress(Sender: TObject; per: Integer);
begin
ProgressBar1.Position := per;
ProgressBar1.Visible := per < 100;
end;
// Create FFT
procedure TForm1.Button2Click(Sender: TObject);
begin
if assigned(FTImage) then
FTImage.Free;
FTImage:=ImageEnView1.Proc.FTCreateImage( ieitRGB ,-1,-1 );
ImageEnView2.Proc.FTDisplayFrom( FTImage );
end;
// ReCreate image
procedure TForm1.Button3Click(Sender: TObject);
begin
if assigned(FTImage) then
ImageEnView1.Proc.FTConvertFrom( FTImage );
end;
// Do "HI Pass"
procedure TForm1.Button4Click(Sender: TObject);
begin
if assigned(FTImage) then
begin
FTImage.HiPass( StrToIntDef(edit1.text,1) );
ImageEnView2.Proc.FTDisplayFrom( FTImage );
end;
end;
// Do "Lo Pass"
procedure TForm1.Button5Click(Sender: TObject);
begin
if assigned(FTImage) then
begin
FTImage.LoPass( StrToIntDef(edit2.text,1) );
ImageEnView2.Proc.FTDisplayFrom( FTImage );
end;
end;
procedure TForm1.ImageEnView2SelectionChanging(Sender: TObject);
begin
with ImageEnView2 do
label6.caption := IntToStr(SelX1)+','+IntToStr(SelY1)+','+IntToStr(SelX2)+','+IntToStr(SelY2);
end;
// Do Clear Area
procedure TForm1.Button6Click(Sender: TObject);
begin
if assigned(FTImage) then
begin
with ImageEnView2 do
FTImage.ClearZone( SelX1,SelY1,SelX2,SelY2 );
ImageEnView2.Proc.FTDisplayFrom( FTImage );
end;
end;
end.