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

121 lines
2.9 KiB
Plaintext

unit umain;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ieview, imageenview, ExtCtrls, Menus, histogrambox, StdCtrls, Buttons;
type
TMainForm = class(TForm)
Panel1: TPanel;
ImageEnView1: TImageEnView;
HistogramBoxGray: THistogramBox;
Label1: TLabel;
Label2: TLabel;
HistogramBoxRed: THistogramBox;
Label3: TLabel;
HistogramBoxGreen: THistogramBox;
Label4: TLabel;
HistogramBoxBlue: THistogramBox;
Panel2: TPanel;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
Button1: TButton;
Button2: TButton;
lblHue: TLabel;
HistogramBoxHue: THistogramBox;
procedure FormCreate(Sender: TObject);
procedure ImageEnView1SelectionChange(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
procedure UpdateHistograms;
public
{ Public declarations }
end;
var
MainForm: TMainForm;
implementation
uses ushowdata;
{$R *.DFM}
{$R WindowsTheme.res}
procedure TMainForm.FormCreate(Sender: TObject);
begin
HistogramBoxGray .AttachedImageEnProc := ImageEnView1.Proc;
HistogramBoxRed .AttachedImageEnProc := ImageEnView1.Proc;
HistogramBoxGreen.AttachedImageEnProc := ImageEnView1.Proc;
HistogramBoxBlue .AttachedImageEnProc := ImageEnView1.Proc;
HistogramBoxHue .AttachedImageEnProc := ImageEnView1.Proc;
HistogramBoxGray .HistogramStyle := hsFilledLines;
HistogramBoxRed .HistogramStyle := hsFilledLines;
HistogramBoxGreen.HistogramStyle := hsFilledLines;
HistogramBoxBlue .HistogramStyle := hsFilledLines;
HistogramBoxHue .HistogramStyle := hsFilledLines;
end;
procedure TMainForm.ImageEnView1SelectionChange(Sender: TObject);
begin
UpdateHistograms();
end;
// rectangle selection
procedure TMainForm.SpeedButton1Click(Sender: TObject);
begin
if SpeedButton1.Down then
ImageEnView1.MouseInteract:=[miSelect];
end;
// ellipse selection
procedure TMainForm.SpeedButton2Click(Sender: TObject);
begin
if SpeedButton2.Down then
ImageEnView1.MouseInteract:=[miSelectCircle];
end;
// polygon selection
procedure TMainForm.SpeedButton3Click(Sender: TObject);
begin
if SpeedButton3.Down then
ImageEnView1.MouseInteract:=[miSelectPolygon];
end;
// Show Values
procedure TMainForm.Button1Click(Sender: TObject);
begin
FShowValues.ShowModal;
end;
// Open
procedure TMainForm.Button2Click(Sender: TObject);
begin
with ImageEnView1.IO do
LoadFromFile( ExecuteOpenDialog('','',false,1,'') );
UpdateHistograms();
end;
procedure TMainForm.UpdateHistograms;
begin
HistogramBoxGray.Update;
HistogramBoxRed.Update;
HistogramBoxGreen.Update;
HistogramBoxBlue.Update;
HistogramBoxHue.Update;
end;
end.