程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#完成的簡略驗證碼辨認實例

C#完成的簡略驗證碼辨認實例

編輯:C#入門知識

C#完成的簡略驗證碼辨認實例。本站提示廣大學習愛好者:(C#完成的簡略驗證碼辨認實例)文章只能為提供參考,不一定能成為您想要的結果。以下是C#完成的簡略驗證碼辨認實例正文


比來做一個小玩意須要辨認驗證碼,之前歷來沒有接觸過辨認驗證碼這塊,這可難倒了我。所以,在網上搜刮若何辨認驗證碼,很多先輩寫的博文教會了我。怕今後又忘卻了,故此寫篇漫筆記載。

我要辨認的驗證碼是一種異常簡略,如圖:

辨認步調:

1、圖片灰度化(把黑色的驗證碼圖片轉換成灰色的圖片)、圖片二值化

for (int i = 0; i < bmp.Width; i++)
            {
                for (int j = 0; j < bmp.Height; j++)        //兩重輪回,遍歷驗證碼圖片的像素點
                {
                    Color color = bmp.GetPixel(i, j);        //取位圖某點色彩
                    int gray = (int)(color.R * 0.3 + color.G * 0.59 + color.B * 0.11);    //灰度化
                    if (gray * 0.2125 + gray * 0.7154 + gray * 0.0721 >= v)      //二值化,v為阈值,年夜於等於阈值的設為白色,否者設為黑色
                    {
                        bmp.SetPixel(i, j, Color.FromArgb(255, 255, 255));
                    }
                    else
                    {
                        bmp.SetPixel(i, j, Color.FromArgb(0, 0, 0));
                    }
                }
            }

經由圖片灰度化的處置,圖片就成如許子:

經由圖片二值化的處置,圖片就成如許子:

2、圖片朋分(把四個數字朋分出來,保留像素點代碼)

把本來的全部驗證碼圖片依照固定的寬、高朋分出來(我是按右邊距6像素,頂邊距4像素,距離4像素,寬9像素,高12像素朋分)。然後掏出各個數字圖片的像素色,255輸入1,其他輸入0。就獲得108(9*12)個0,1了。

111111111111111000000111100000000001001111111100011111111110001111111100100000000001111000000111111111111111

保留完一切數字(0-9)的0,1代碼以後,今後就直接與這9串0,1隱約婚配(有正色的能夠,所以要隱約婚配),然後就完成了主動辨認驗證碼。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved