📄 mainunit.pas
字号:
TextViewForm.RowStringGrid.Cells[0,i-1]:=floatTOStr(RowColorJmpS[i]);
TextViewForm.RowStringGrid.Cells[1,i-1]:=floatTOStr(RowColorJmpE[i]);
end;
TextViewForm.ListBoxL.Clear; TextViewForm.ListBoxR.Clear;
for i:=1 to 32 do
begin
// format('Line %d is: %d',i,LineSum[i]);
// TextViewForm.ListBoxL.Items.Add(IntToStr(LineSum[i]));
// TextViewForm.ListBoxR.Items.Add(IntToStr(RowSum[i]));
TextViewForm.ListBoxL.Items.Add(format('第 %2d 列: %2f',[i,LineSum[i]]));
TextViewForm.ListBoxR.Items.Add(format('第 %2d 行: %2f',[i,RowSum[i]]));
end;
// if ChartCheckBox.Checked=False then goto Loop;
ChartForm.FourCCChart.Series[0].Clear;
ChartForm.FourCCChart.Series[1].Clear;
case FileListForm.StyleComboBox.ItemIndex of
0: begin
for i:=1 to 32 do
begin
ChartForm.FourCCChart.Series[0].Add(RowSum[i]);
ChartForm.FourCCChart.Series[1].Add(LineSum[i]);
end;
end;
1:begin
for i:=2 to 32 do
begin
ChartForm.FourCCChart.Series[0].Add(RowSum[i]-RowSum[i-1]);
ChartForm.FourCCChart.Series[1].Add(LineSum[i]-LineSum[i-1]);
end;
end;
2: begin
for i:=1 to 32 do
begin
ChartForm.FourCCChart.Series[0].Add(RowColorJmpS[i]);
ChartForm.FourCCChart.Series[1].Add(LineColorJmpS[i]);
end;
end;
3:begin
for i:=1 to 32 do
begin
ChartForm.FourCCChart.Series[0].Add(RowColorJmpE[i]);
ChartForm.FourCCChart.Series[1].Add(LineColorJmpE[i]);
end;
end;
4:begin
for I:=1 to BLackWhite do
begin
ChartForm.FourCCChart.Series[0].Add(BlackWhiteX[i]);
ChartForm.FourCCChart.Series[1].Add(BlackWhiteY[i]);
end;
end;
5:begin
for i:=1 to 32 do
begin
Data[i]:=MainUnit.LineSum[i];
Data[i+32]:=MainUnit.RowSum[i];
Data[i+64]:=MainUnit.LineColorJmpS[i];
Data[i+96]:=MainUnit.LineColorJmpE[i];
Data[i+128]:=MainUnit.RowColorJmpS[i];
Data[i+160]:=MainUnit.RowColorJmpE[i];
end;
for i:=1 to 4 do
begin
Data[i+192]:=MainUnit.FourColorCenterx[i];
Data[i+196]:=MainUnit.FourColorCentery[i];
end;
for i:=1 to 200 do
ChartForm.FourCCChart.Series[0].Add(Data[i]);
end;
6:begin
for i:=12 to 19 do
ChartForm.FourCCChart.Series[0].Add(SqureNumber[i]);
end;
end;
//ImageViewForm.SqViewImage.Picture:=SqImage.Picture;
Loop:;
end;
procedure TTextForm.Zoom(Image1,NormalImage:TImage);
var
Mybmp: TBitmap;
begin
self.DoubleBuffered := True;
Mybmp := TBitmap.Create;
Mybmp.Width := 32;
Mybmp.Height := 32;
NormalImage.Width := Mybmp.Width;
NormalImage.Height := MyBmp.Height;
SetStretchBltMode(Mybmp.Canvas.Handle, HalfTone);
Stretchblt(Mybmp.Canvas.Handle, 0, 0, Mybmp.Width,
Mybmp.Height, image1.Canvas.Handle, 0, 0, image1.Picture.Bitmap.Width,
image1.Picture.Bitmap.Height,
SRCCOPY);
Mybmp.PixelFormat := pf24bit;
NormalImage.Picture.Bitmap.Assign(MyBmp);
MyBmp.Free;
end;
procedure TTextForm.GuiYi(Img1,Img2,Img3:TImage);
var
W,H,x,y,i,j:integer;
Line,Row:real;
p,q:pbyteArray;
bitp,bitp2:TBitmap;
RecognizeCharInPicture:Boolean;
TZCN,TZColorSum:array[0..20,0..20]of integer;
begin
Zoom(Img1,Img2);
TextViewForm.EditH.Text:=IntToStr(Img2.Height);
TextViewForm.EditW.Text:=IntToStr(Img2.Width);
Img3.Picture:=Img2.Picture;
end;
//////////////////////////////////////////////////////////////////////////////////////////
procedure TTextForm.GetRegion(Bmp: TBitmap);
var
x,y,top,bottom,left,right:integer;
p,q:pbytearray;
bitp:Tbitmap;
begin
top:=bmp.Height; bottom:=-1;
bmp.PixelFormat:=pf24bit;
left:=bmp.Width; right:=-1;
for y:=0 to bmp.Height-1 do
begin
p:=bmp.ScanLine[y];
for x:=0 to bmp.Width-1 do
begin
if p[3*x]<>255 then
begin
if y<top then top:=y;
if y>bottom then bottom:=y;
if x<left then left:=x;
if x>right then right:=x;
end;
end;
end;
CreateBmp(Left,Right,Top,Bottom);
end;
/////////////////////////////////////////////////////////////////////////////////////////
procedure TTextForm.CreateBmp(Left,Right,Top,Bottom: integer);
var
p,q:pbytearray;
x,y,r,g,b,n,gray:integer;
bmp,bitp:Tbitmap;
s,t:string;
begin
bmp:=Tbitmap.Create;
bmp.PixelFormat:=pf24bit;
bmp.Assign(ImageViewForm.Viewimage.Picture.Bitmap);
bitp:=TBitmap.Create;
bitp.PixelFormat:=pf24bit;
bitp.Assign(ImageViewForm.Image1.Picture.Bitmap);
bitp.NewInstance;
bitp.Width:=right-left+1;
bitp.Height:=bottom-top+1;
for y:=top to bottom do
begin
p:=bmp.ScanLine[y];
q:=bitp.ScanLine[y-top];
for x:=left to right do
begin
q[3*(x-left)]:=p[3*x];
q[3*(x-left)+1]:=p[3*x+1];
q[3*(x-left)+2]:=p[3*x+2];
end;
end;
ImageViewForm.CTImage.Picture.Bitmap.Assign(bitp);
bitp.Free;
bmp.Free;
//image1.Picture.Bitmap:=bitp;
end;
procedure TTextForm.FormShow(Sender: TObject);
begin
//TextForm.WindowState:=wsMaximized;
TextViewForm.Show;
ChartForm.show;
FileListForm.Show;
end;
procedure TTextForm.FileOpenItemClick(Sender: TObject);
begin
if OpenPictureDialog1.Execute then
begin
ImageViewForm.ViewImage.Picture.LoadFromFile(OpenPictureDialog1.FileName);
ImageViewForm.Show;
N6.Checked:=True;
end;
end;
procedure TTextForm.NomalTSClick(Sender: TObject);
begin
ImageTeZheng(ImageViewForm.sqImage);
ViewData;
end;
procedure TTextForm.NClearSideClick(Sender: TObject);
begin
GetRegion(ImageViewForm.ViewImage.Picture.Bitmap);
end;
procedure TTextForm.NToCenterClick(Sender: TObject);
begin
GuiYi(ImageViewForm.CTImage,ImageViewForm.ZTImage,ImageViewForm.SqImage);
end;
procedure TTextForm.FileExitItemClick(Sender: TObject);
begin
Close;
end;
procedure TTextForm.FileListOpenClick(Sender: TObject);
begin
FileListOpenForm.show;
ImageViewForm.Show;
N6.Checked:=True;
end;
procedure TTextForm.N10Click(Sender: TObject);
begin
GetBone(ImageViewForm.SqImage,ImageViewForm.BoneImage);
end;
procedure TTextForm.ThinImageClick(Sender: TObject);
begin
ImageViewForm.XHImage.Picture:=ImageViewForm.SqImage.Picture;
ThinFrame(ImageViewForm.SqImage.Picture.Bitmap,ImageViewForm.XHImage.Picture.Bitmap);
end;
procedure TTextForm.LetterXH2Click(Sender: TObject);
begin
ImageViewForm.XHImage.Picture:=ImageViewForm.SqImage.Picture;
Thin(ImageViewForm.XHImage.Picture.Bitmap);
ImageViewForm.SQImage.Picture:=ImageViewForm.XHImage.Picture;
end;
procedure TTextForm.N9Click(Sender: TObject);
begin
ClearSmall(Sender,ImageViewForm.ViewImage,IMageViewForm.SXIMage);
ImageViewForm.ViewImage.Picture:=IMageViewForm.SXIMage.Picture;
end;
procedure TTextForm.FileSaveItemClick(Sender: TObject);
begin
//FilePas:=ExtractFilePath(Application.ExeName);
SaveFOrm.Show;
end;
procedure TTextForm.N2Click(Sender: TObject);
begin
if N2.Checked=False then
begin
TextViewForm.Visible:=True;
N2.Checked:=True;
end else begin
TextViewForm.Visible:=False;
N2.Checked:=False;
end;
end;
procedure TTextForm.N3Click(Sender: TObject);
begin
if N3.Checked=False then
begin
N3.Checked:=True;
ChartForm.Show;
end else begin
N3.Checked:=False;
ChartForm.Hide;
end;
end;
procedure TTextForm.N4Click(Sender: TObject);
begin
if N4.Checked=False then
begin
N4.Checked:=True;
FileListForm.Show;
end else begin
N4.Checked:=False;
FileListForm.Hide;
end;
end;
procedure TTextForm.N16Click(Sender: TObject);
begin
if N16.Checked=False then
begin
N16.Checked:=True;
ToolBar1.Show;
end else begin
N16.Checked:=False;
ToolBar1.Hide;
end;
end;
procedure TTextForm.N17Click(Sender: TObject);
begin
if N17.Checked=False then
begin
N17.Checked:=True;
StatusBar1.Show;
end else begin
N17.Checked:=False;
StatusBar1.Hide;
end;
end;
procedure TTextForm.N5Click(Sender: TObject);
begin
NetForm.show;
TextForm.Hide;
if N3.Checked=True then ChartForm.Hide;
if N6.Checked=True then ImageViewForm.Hide;
if N4.Checked=True then FileListForm.Hide;
if N2.Checked=True then TextViewForm.Hide;
end;
procedure TTextForm.N6Click(Sender: TObject);
begin
if N6.Checked=False then
begin
N6.Checked:=True;
ImageViewForm.Show;
end else begin
N6.Checked:=False;
ImageViewForm.Hide;
end;
end;
procedure TTextForm.ToolButton9Click(Sender: TObject);
begin
TextForm.Close;
end;
procedure TTextForm.MomentPropertyClick(Sender: TObject);
begin
GetMoment(ImageViewForm.SqImage);
FileListForm.StyleComboBox.ItemIndex:=6;
ViewData;
end;
procedure TTextForm.N15Click(Sender: TObject);
begin
disRecForm.CharImage.Picture:=ImageViewform.SqImage.Picture;
TextForm.Hide;
if N3.Checked=True then ChartForm.Hide;
if N6.Checked=True then ImageViewForm.Hide;
if N4.Checked=True then FileListForm.Hide;
if N2.Checked=True then TextViewForm.Hide;
DisRecForm.show;
end;
procedure TTextForm.ostar1Click(Sender: TObject);
begin
OtsuAlgorithmClick(Sender,ImageViewForm.ViewImage.Picture.Bitmap);
end;
procedure TTextForm.N20Click(Sender: TObject);
begin
winexec(PAnsiChar(ExtractFilePath(Application.ExeName)+'\PlateFixterProject.exe'),SW_ShowNormal);
end;
procedure TTextForm.N7Click(Sender: TObject);
begin
TextForm.Hide;
if N3.Checked=True then ChartForm.Hide;
if N6.Checked=True then ImageViewForm.Hide;
if N4.Checked=True then FileListForm.Hide;
if N2.Checked=True then TextViewForm.Hide;
HelpForm.show;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -