以前はUnicomのリチャージカードの自動再充電の実装を書いたが、最近Unicomの公式サイトがリニューアルされ、何気なくCAPTCHAの新しいバージョンを見て発見し、以前の違いは、彼の識別コードを勉強するために少し時間を送った、それは今、次の検証コードです:
識別の手順は以下の通りです。
1,グレースケールイメージの変換
2,クリア2pxボーダー
3,CAPTCHAの数を分割します。
4,フォントライブラリの生成
以上の手順で、以下のような効果が得られます。
以下は実装コードの一部です。
public String GetCheckString(Bitmap bitmap) {
UnCodebase ud = new UnCodebase(bitmap);
ud.GrayByPixels();
ud.ClearPicBorder(2);
ud.CutMap(14, 15, 0, 0);
bitmap = ud.bmpobj;
// bitmap = ud.ClearNoise(128, 1);
String chkcode = "";
Bitmap[] arrmap = ud.SplitImg(bitmap, 4, 1);
foreach (Bitmap item in arrmap) {
String str = ud.GetCodebybitmap(item, 128);
Boolean isEques = false;
foreach (String strss in code) {
String[] a = strss.Split(':');
if (str == a[1]) {
chkcode += a[0];
isEques = true;
break;
}
}
if (!isEques) {
String strCurrent = "";
double max = 0.0;
foreach (String strss in code) {
int len1, len2, min, count = 0;
String[] a = strss.Split(':');
len1 = a[1].Length;
len2 = str.Length;
min = len1;
if (min > len2) {
min = len2;
}
for (int i = 0; i < min; i++) {
if (str[i] == a[1][i]) {
count++;
}
}
double currrent = (count * 100.0 / min);
if (max < currrent) {
max = currrent;
strCurrent = a[0].Trim();
}
}
chkcode += strCurrent.Trim();
}
}
return chkcode;
}
これらのプロセスを経て、認識成功率は90%以上となりました。
asp.netのチューニングのC / C + +の実装は、トラブルのいくつかのアンマネージド、System32またはトラブルへの絶対パスに配置する必要がある場合、テストアドレスは、コード100%C#の実装では、asp.netの呼び出しを容易にするために、以下に添付され
テストアドレス
ユニコンテスト.aspx
この記事は