【delphi开源代码栏目提醒】:网学会员delphi开源代码为您提供ImageProcessMainUnit.pas参考,解决您在ImageProcessMainUnit.pas学习中工作中的难题,参考学习。
unit ImageProcessMainUnit;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, ComCtrls, ExtDlgs, JPEG, Buttons, Clipbrd, Menus,math,
OleCtrls, HVDEVICELib_TLB;
type
TImageProcessForm = class(TForm)
ScrollBox1: TScrollBox;
SavePictureDialog1: TSavePictureDialog;
MainMenu1: TMainMenu;
FileItems: TMenuItem;
ImageProcess: TMenuItem;
Gray1: TMenuItem;
ScrollBox2: TScrollBox;
PaintBox2: TPaintBox;
TwoValue: TMenuItem;
OpenImage: TMenuItem;
Exit: TMenuItem;
SaveAs: TMenuItem;
LoadPrimitiveImage: TMenuItem;
Filter: TMenuItem;
Erode: TMenuItem;
Help: TMenuItem;
Dilate: TMenuItem;
InvertImage: TMenuItem;
Sobel: TMenuItem;
Prewitt: TMenuItem;
R1: TMenuItem;
ScanImageSum: TMenuItem;
LedSumLabel: TLabel;
LedLabel: TLabel;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
A1: TMenuItem;
Image1: TImage;
S1: TMenuItem;
ImageInBlue: TMenuItem;
ImageCapture: TMenuItem;
Connected: TMenuItem;
OtsuTwoValue: TMenuItem;
SingleFrame: TMenuItem;
SaveBmpToDisk: TMenuItem;
P2: TMenuItem;
M1: TMenuItem;
W1: TMenuItem;
C1: TMenuItem;
L1: TMenuItem;
GetVideoImageAndProcess: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
DistanceTransfer: TMenuItem;
vSobel: TMenuItem;
HSobel: TMenuItem;
WeightMiddleFilter: TMenuItem;
GetLedNumInOne: TMenuItem;
HVDevice: THVDevice;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure PaintBox1Paint(Sender: TObject);
procedure BtExitClick(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure BtsaveClick(Sender: TObject);
procedure InitialImages(Sender: TObject);
procedure FormResize(Sender: TObject);
procedure Gray1Click(Sender: TObject);
procedure TwoValueClick(Sender: TObject);
procedure OpenImageClick(Sender: TObject);
procedure ExitClick(Sender: TObject);
procedure SaveAsClick(Sender: TObject);
procedure PaintBox2Paint(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure TwoValueTrackBarChange(Sender: TObject);
procedure LoadPrimitiveImageClick(Sender: TObject);
procedure FilterClick(Sender: TObject);
procedure SelectionSort(var a: array of integer);
procedure DilateClick(Sender: TObject);
procedure ErodeClick(Sender: TObject);
procedure InvertImageClick(Sender: TObject);
procedure SobelClick(Sender: TObject);
procedure PrewittClick(Sender: TObject);
procedure ScanImageSumClick(Sender: TObject);
function ConnectRegionLabel(BMP:TBitmap;ConnectBodyNum,x,y:integer):integer;
procedure N2Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure A1Click(Sender: TObject);
procedure S1Click(Sender: TObject);
procedure ImageInBlueClick(Sender: TObject);
procedure DistanceTransferClick(Sender: TObject);
procedure GetVideoImageAndProcessClick(Sender: TObject);
procedure OtsuTwoValueClick(Sender: TObject);
procedure SingleFrameClick(Sender: TObject);
procedure SaveBmpToDiskClick(Sender: TObject);
procedure P2Click(Sender: TObject);
procedure W1Click(Sender: TObject);
procedure M1Click(Sender: TObject);
procedure HVDeviceGrabContinuousChange(Sender: TObject);
procedure C1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure N4Click(Sender: TObject);
procedure N5Click(Sender: TObject);
procedure vSobelClick(Sender: TObject);
procedure HSobelClick(Sender: TObject);
procedure WeightMiddleFilterClick(Sender: TObject);
procedure GetLedNumInOneClick(Sender: TObject); //connect component
private
procedure Dimensionpaintbox;
procedure showPrimitiveBmp;
procedure ShowOriginalBmp;
procedure ShowChangedBmp;
end;
var
ImageProcessForm: TImageProcessForm;
WillbeChangedBmp : Tbitmap; // Bitmap read by Ulecture unit
CurrentImageFileName,CurrentDir : string; //现在的目录
RvalueArray, GvalueArray, BvalueArray: array[0..8] of Integer;
implementation
{$R *.DFM}
uses ImageFileSelect,about, Properties;
type
TRGBArray = ARRAY[0..0] OF TRGBTriple; // bitmap element (API windows)
pRGBArray = ^TRGBArray; // type pointer to 3 bytes array
Var
ChangedBmp : Tbitmap; // Bitmap read. Used to restore original image
ProcessedBmp : Tbitmap; // 处理后图像
TestBMP : Tbitmap; // 处理过程中位图
PromitiveBmp : Tbitmap; //
Startdir : string; // 开始目录
curfichier : string; // 现在的文件名
SaveToDir: string; // 保存目录
count:integer;
bIsGrabContinous:boolean;
//---------------------------------------------------------------------------
procedure TImageProcessForm.FormCreate(Sender: TObject);
begin
savetodir := '';
WillbeChangedBmp := tbitmap.create; WillbeChangedBmp.width := 0; WillbeChangedBmp.height := 0;
ChangedBmp := tbitmap.create; ChangedBmp.width := 0; ChangedBmp.height := 0;
ProcessedBmp := Tbitmap.create; ProcessedBmp.width := 0; ProcessedBmp.height := 0;
TestBMP := tbitmap.create; TestBMP.width := 0; TestBMP.height := 0;
PromitiveBmp := tbitmap.create; PromitiveBmp.width := 0; PromitiveBmp.height := 0;
CurrentDir := getcurrentdir;
startdir := getcurrentdir;
bIsGrabContinous := false;
end;
procedure TImageProcessForm.FormActivate(Sender: TObject);
begin
// OpenImageClick(sender);
end;
procedure TImageProcessForm.FormDestroy(Sender: TObject);
begin
WillbeChangedBmp.free;
ChangedBmp.free;
ProcessedBmp.free;
TestBMP.free;
PromitiveBmp.free;
end;
procedure TImageProcessForm.BtExitClick(Sender: TObject);
begin
close;
end;
procedure TImageProcessForm.PaintBox1Paint(Sender: TObject);
begin
ShowOriginalBmp;
end;
procedure TImageProcessForm.FormResize(Sender: TObject);
begin
if ProcessedBmp <> nil then
begin
dimensionpaintbox;
// paintbox1.invalidate;
end;
end;
procedure TImageProcessForm.DimensionPaintbox;
begin
image1.width := WillbeChangedBmp.width;
image1.height := WillbeChangedBmp.height;
end;
procedure TImageProcessForm.showPrimitiveBmp;
begin
// with paintbox1.canvas do
// begin
// copymode := srccopy;
image1.Picture.Bitmap.Assign(PromitiveBmp);
// draw(0,0,PromitiveBmp)
// end;
end;
procedure TImageProcessForm.ShowOriginalBmp;
begin
image1.Picture.Bitmap.Assign(WillbeChangedBmp);
end;
procedure TImageProcessForm.ShowChangedBmp;
begin
with paintbox2.canvas do
begin
copymode := srccopy;
draw(0,0,ChangedBmp)
end;
end;
procedure TImageProcessForm.InitialImages(Sender: TObject);
begin
ChangedBmp.width := WillbeChangedBmp.width;
ChangedBmp.height := WillbeChangedBmp.height;
ChangedBmp.pixelformat := pf24bit;
Process
上一篇:
FullScreenDemo.cpp
下一篇:
那些令你为之触动的好句子,感慨万分