📄 form1.cs
字号:
}
private void label1_Click(object sender, System.EventArgs e)
{
}
private void Open_Click(object sender, System.EventArgs e)
{
BrightButton.Enabled=false;
NoiselessButton.Enabled=false;
MarginalButton.Enabled=false;
TwoValueButton.Enabled=false;
SaveButton.Enabled=false;
panel4.Enabled=false;
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "Jpeg文件(*.jpg)|*.jpg|Bitmap文件(*.bmp)|*.bmp| 所有合适文件(*.bmp/*.jpg)|*.bmp/*.jpg";
openFileDialog.FilterIndex = 2 ;
openFileDialog.RestoreDirectory = true ;
if(DialogResult.OK == openFileDialog.ShowDialog())
{
name = openFileDialog.FileName;
m_Bitmap = (Bitmap)Bitmap.FromFile(name, false);
this.panel1.AutoScroll = true;
this.panel1.AutoScrollMinSize=new Size ((int)(m_Bitmap.Width),(int)
m_Bitmap.Height);
this.InvertButton.Enabled=true;
this.GrayButton.Enabled=true;
panel1.Invalidate();
panel2.Invalidate();
panel4.Invalidate();
}
}
private void ImageProcess_Load(object sender, System.EventArgs e)
{
}
private void hScrollBar1_Scroll(object sender, System.Windows.Forms.ScrollEventArgs e)
{
panel1.Invalidate();
}
private void panel1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
Graphics g = e.Graphics;
g.DrawImage(m_Bitmap, new Rectangle(this.panel1.AutoScrollPosition.X, this.panel1.AutoScrollPosition.Y,
(int)(m_Bitmap.Width), (int)(m_Bitmap.Height)));
}
private void SaveButton_Click(object sender, System.EventArgs e)
{
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = "Bitmap文件(*.bmp)|*.bmp| Jpeg文件(*.jpg)|*.jpg| 所有合适文件(*.bmp/*.jpg)|*.bmp/*.jpg";
saveFileDialog.FilterIndex = 1 ;
saveFileDialog.RestoreDirectory = true ;
if(DialogResult.OK == saveFileDialog.ShowDialog())
{
c_Bitmap.Save(saveFileDialog.FileName);
}
}
private void panel2_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
Graphics g = e.Graphics;
g.DrawString(name,new Font("Arial", 8), new SolidBrush(Color.Black),0,0);
}
private void label1_Click_1(object sender, System.EventArgs e)
{
}
private void InvertButton_Click(object sender, System.EventArgs e)
{
if(Filters.Invert(m_Bitmap,out gray))
{
LcolorPanel.Invalidate();
graydo();
}
}
private void GraphyPanel_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
Graphics g = e.Graphics;
int p;
p = m_Bitmap.Width*m_Bitmap.Height;
// this.l_pixel.Text=p.ToString();
int height =this.GraphyPanel.Height;
for(int j=0;j<256;j++)
{
if(gl[j]>height)
gl[j]=height;
g.DrawLine(pen1,j,height,j,height-gl[j]);
}
if(aline)
{
g.DrawLine(Pens.OrangeRed,xx,0,xx,height);
}
}
private void GraphyPanel_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
xx=e.X;
if(xx>255)
xx=255;
if(xx<=0)
xx=0;
aline=true;
this.GraphyPanel.Invalidate();
}
private void GraphyPanel_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
{
Point p=new Point(e.X,e.Y);
if(new Rectangle(0,0,256,127).Contains(p))
{
this.xx=e.X;
}
else
{
this.xx=-1;
}
this.GraphyPanel.Invalidate();
}
private void GraphyPanel_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
{
aline=false;
}
private void LcolorPanel_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
int width=this.LcolorPanel.Width;
int height=this.LcolorPanel.Height;
int j;
Color c;
Graphics g=e.Graphics;
switch(flag)
{
case 1:
{
for(int i=width;i>=0;i--)
{
j=i;
if(j>255) j=255;
c=Color.FromArgb(j,j,j);
Pen pen2=new Pen(c,1);
g.DrawLine(pen2,i,0,i,height);
}
break;
}
case 2:
{
for(int i=width;i>=0;i--)
{
j=i;
if(j>255) j=255;
c=Color.FromArgb(j,0,0);
Pen pen2=new Pen(c,1);
g.DrawLine(pen2,i,0,i,height);
}
break;
}
case 3:
{
for(int i=width;i>=0;i--)
{
j=i;
if(j>255) j=255;
c=Color.FromArgb(0,j,0);
Pen pen2=new Pen(c,1);
g.DrawLine(pen2,i,0,i,height);
}
break;
}
case 4:
{
for(int i=width;i>=0;i--)
{
j=i;
if(j>255) j=255;
c=Color.FromArgb(0,0,j);
Pen pen2=new Pen(c,1);
g.DrawLine(pen2,i,0,i,height);
}
break;
}
default:
break;
}
}
private void GrayButton_Click(object sender, System.EventArgs e)
{
Filters.zft(m_Bitmap,out gray,out rr,out gg, out bb);
this.BrightButton.Enabled=true;
this.NoiselessButton.Enabled=true;
LcolorPanel.Invalidate();
graydo();
}
private void BrightButton_Click(object sender, System.EventArgs e)
{
if(Filters.Brightness(m_Bitmap,gray,out gray,(int)count) )
graydo();
}
private void label2_Click(object sender, System.EventArgs e)
{
}
private void panel4_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
Graphics g = e.Graphics;
Point ulCorner = new Point( 0, 0);
g.DrawImage(c_Bitmap,0,0);
//g.DrawImage(c_Bitmap, new Rectangle(this.panel1.AutoScrollPosition.X, this.panel1.AutoScrollPosition.Y,
// (int)(c_Bitmap.Width), (int)(c_Bitmap.Height)));
}
private void groupBox1_Enter(object sender, System.EventArgs e)
{
}
private void label1_Click_2(object sender, System.EventArgs e)
{
}
private void groupBox2_Enter(object sender, System.EventArgs e)
{
}
private void graydo()
{
this.flag=1;
count = m_Bitmap.Width * m_Bitmap.Height;
gl=new float[256];
for(int i=0;i<256; i++)
gl[i]= gray[i]/count *1500;
pen1=Pens.Red;
panel1.Invalidate();
GraphyPanel.Invalidate();
}
private void NoiselessButton_Click(object sender, System.EventArgs e)
{
if(Filters.GaussianFilter(m_Bitmap,out gray))
graydo();
this.MarginalButton.Enabled=true;
}
private void MarginalButton_Click_1(object sender, System.EventArgs e)
{
int ccount;
int yl,yr,xu,xd;
if (Filters.MarginalFilter(m_Bitmap,out gray,out ccount ,67,out xu,out xd,out yl,out yr,out maxX,out maxY)) {
m_Bitmap1 = (Bitmap)Bitmap.FromFile(name, false);
Rectangle sourceRectangle = new Rectangle(yl,xu,yr-yl,xd-xu);
c_Bitmap= m_Bitmap1.Clone(sourceRectangle,
PixelFormat.DontCare);
groupBox1.Text="车牌";
groupBox1.Invalidate();
this.SaveButton.Enabled=true;
this.TwoValueButton.Enabled=true;
panel4.Invalidate();
graydo();
}
}
private void textBox1_TextChanged(object sender, System.EventArgs e)
{
}
private void InciseButton_Click(object sender, System.EventArgs e)
{
Filters.zft(c_Bitmap,out gray,out rr,out gg, out bb);
Rectangle sourceRectangle = new Rectangle(maxY,maxX,66,14);
Bitmap xc_Bitmap=c_Bitmap.Clone(sourceRectangle,
PixelFormat.DontCare);
if (Filters.TowValue(c_Bitmap,xc_Bitmap,maxY,maxY)) {
groupBox1.Text="车牌(经二值化处理)";
groupBox1.Invalidate();
panel4.Invalidate();
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -