csdn可以说的技术界的老大了,而优快云的验证码识别如下,看如下代码
简单验证码的识别:优快云验证码的识别 取图像部分,ASP.NET_SessionID=这个值你要自己取这样的话就可以做成自动登录了
privateStreamgeturl(refstringstr)
  {
stringurl="http://www.youkuaiyun.com/member/ShowExPwd.aspx";
WebRequestmyWebRequest=WebRequest.Create(url);

myWebRequest.Headers.Add("Cookie","ASP.NET_SessionId=tr0p4g45xa0qzg45bmlqprnn");
WebResponsemyWebResponse=myWebRequest.GetResponse();
StreamReceiveStream=myWebResponse.GetResponseStream();
str=myWebResponse.Headers[6];
returnReceiveStream;

}
privatestringgetNumber()
  {
stringstr;
str="";
StreamgeturlStream=geturl(refstr);
Bitmapmap=newBitmap(geturlStream,false);
pictureBox1.Image=(Image)map;
csdncsdn1=newcsdn();
returncsdn1.readMap(map)+str;
}
验证码识别部分(很简单类型的):
分割图片变成四个部分.
接下来判断象素点.再判断特征点 100%识别
usingSystem;
usingSystem.Drawing;
usingSystem.Drawing.Drawing2D;
usingSystem.Drawing.Imaging;

namespacebinbin
  {
 /**////<summary>
///Class1的摘要说明。
///</summary>
publicclasscsdn
  {
publiccsdn()
  {

}
publicstringreadMap(Bitmapimage)
  {
stringstr;
RectangleF[]block=newRectangleF[4];
block[0]=newRectangle(3,0,8,18);
block[1]=newRectangle(12,0,8,18);
block[2]=newRectangle(21,0,8,18);
block[3]=newRectangle(30,0,8,18);
//分别克隆图片的四个部分
Bitmap[]s=newBitmap[4];
s[0]=image.Clone(block[0],PixelFormat.DontCare);
s[1]=image.Clone(block[1],PixelFormat.DontCare);
s[2]=image.Clone(block[2],PixelFormat.DontCare);
s[3]=image.Clone(block[3],PixelFormat.DontCare);
str=ReadMap(s[0]).ToString();
str=str+ReadMap(s[1]).ToString();
str=str+ReadMap(s[2]).ToString();
str=str+ReadMap(s[3]).ToString();
returnstr;
}
privateintReadMap(Bitmapk)
  {
intn=0;
intm=0;
Colorcolor;
for(inti=7;i>=0;i--)
  {
for(intj=17;j>=0;j--)
  {
color=k.GetPixel(i,j);
if(color.GetBrightness()==1.0)
  {
n=n+1;//白色点
}
else
  {
m=m+1;//蓝色点
}

}
}
switch(m)
  {
case22:
color=k.GetPixel(7,12);
if(color.GetBrightness()==1)
  {
return2;
}
else
  {
return3;
}
case25:
return4;
case26:
return5;
case28:
return0;
case30:
return8;
case18://1829还要特殊处理
color=k.GetPixel(7,4);
if(color.GetBrightness()==1)
  {
return1;
}
else
  {
return7;
}
case29:

color=k.GetPixel(1,15);
if(color.GetBrightness()==1)
  {
return6;
}
else
  {
return9;
}
default:
break;
}
return-1;
}
}
}
|