⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainunit.pas

📁 用Delphi写的车牌字符各种特征提取实验系统
💻 PAS
📖 第 1 页 / 共 3 页
字号:
   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 + -