c#实现识别图片上的验证码数字

2019-12-30 11:03:40刘景俊
  • {  int posx1 = singlepic.Width; int posy1 = singlepic.Height; 
  • int posx2 = 0; int posy2 = 0;  for (int i = 0; i < singlepic.Height; i++) //找有效区 
  • {  for (int j = 0; j < singlepic.Width; j++) 
  • {  int pixelValue = singlepic.GetPixel(j, i).R; 
  • if (pixelValue < dgGrayValue) //根据灰度值  { 
  • if (posx1 > j) posx1 = j;  if (posy1 > i) posy1 = i; 
  •   if (posx2 < j) posx2 = j; 
  • if (posy2 < i) posy2 = i;  }; 
  • };  }; 
  • //复制新图  Rectangle cloneRect = new Rectangle(posx1, posy1, posx2 - posx1 + 1, posy2 - posy1 + 1); 
  • return singlepic.Clone(cloneRect, singlepic.PixelFormat);  } 
  •   /// <summary> 
  • /// 平均分割图片  /// </summary> 
  • /// <param name="RowNum">水平上分割数</param>  /// <param name="ColNum">垂直上分割数</param> 
  • /// <returns>分割好的图片数组</returns>  public Bitmap [] GetSplitPics(int RowNum,int ColNum) 
  • {  if (RowNum == 0 || ColNum == 0) 
  • return null;  int singW = bmpobj.Width / RowNum; 
  • int singH = bmpobj.Height / ColNum;  Bitmap [] PicArray=new Bitmap[RowNum*ColNum]; 
  •   Rectangle cloneRect; 
  • for (int i = 0; i < ColNum; i++) //找有效区  { 
  • for (int j = 0; j < RowNum; j++)  { 
  • cloneRect = new Rectangle(j*singW, i*singH, singW , singH);  PicArray[i*RowNum+j]=bmpobj.Clone(cloneRect, bmpobj.PixelFormat);//复制小块图 
  • }  } 
  • return PicArray;  } 
  •   /// <summary>