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

📄 form1.cs

📁 C#环境的车牌认别系统源代码和30张测试图片
💻 CS
📖 第 1 页 / 共 2 页
字号:
		}

		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 + -