最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#實(shí)現(xiàn)的簡(jiǎn)單驗(yàn)證碼識(shí)別實(shí)例

 更新時(shí)間:2014年06月27日 11:50:59   投稿:junjie  
這篇文章主要介紹了C#實(shí)現(xiàn)的簡(jiǎn)單驗(yàn)證碼識(shí)別實(shí)例,只適應(yīng)一些簡(jiǎn)單的驗(yàn)證碼,需要的朋友可以參考下

最近做一個(gè)小玩意需要識(shí)別驗(yàn)證碼,之前從來(lái)沒(méi)有接觸過(guò)識(shí)別驗(yàn)證碼這塊,這可難倒了我。所以,在網(wǎng)上搜索如何識(shí)別驗(yàn)證碼,許多前輩寫的博文教會(huì)了我。怕以后又忘記了,故此寫篇隨筆記錄。

我要識(shí)別的驗(yàn)證碼是一種非常簡(jiǎn)單,如圖:

識(shí)別步驟:

1、圖片灰度化(把彩色的驗(yàn)證碼圖片轉(zhuǎn)換成灰色的圖片)、圖片二值化

復(fù)制代碼 代碼如下:

for (int i = 0; i < bmp.Width; i++)
            {
                for (int j = 0; j < bmp.Height; j++)        //雙重循環(huán),遍歷驗(yàn)證碼圖片的像素點(diǎn)
                {
                    Color color = bmp.GetPixel(i, j);        //取位圖某點(diǎn)顏色
                    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為閾值,大于等于閾值的設(shè)為白色,否者設(shè)為黑色
                    {
                        bmp.SetPixel(i, j, Color.FromArgb(255, 255, 255));
                    }
                    else
                    {
                        bmp.SetPixel(i, j, Color.FromArgb(0, 0, 0));
                    }
                }
            }

經(jīng)過(guò)圖片灰度化的處理,圖片就成這樣子:

經(jīng)過(guò)圖片二值化的處理,圖片就成這樣子:

2、圖片分割(把四個(gè)數(shù)字分割出來(lái),保存像素點(diǎn)代碼)

把原來(lái)的整個(gè)驗(yàn)證碼圖片按照固定的寬、高分割出來(lái)(我是按左邊距6像素,頂邊距4像素,間隔4像素,寬9像素,高12像素分割)。然后取出各個(gè)數(shù)字圖片的像素色,255輸出1,其他輸出0。就得到108(9*12)個(gè)0,1了。

復(fù)制代碼 代碼如下:

111111111111111000000111100000000001001111111100011111111110001111111100100000000001111000000111111111111111

保存完所有數(shù)字(0-9)的0,1代碼之后,以后就直接與這9串0,1模糊匹配(有雜色的可能,所以要模糊匹配),然后就實(shí)現(xiàn)了自動(dòng)識(shí)別驗(yàn)證碼。

相關(guān)文章

最新評(píng)論

常熟市| 南皮县| 军事| 新龙县| 旬阳县| 永清县| 贵南县| 游戏| 镇赉县| 文登市| 拉萨市| 贵德县| 平武县| 东宁县| 和顺县| 通城县| 涿鹿县| 汝阳县| 宁都县| 易门县| 双流县| 宁安市| 开江县| 昭苏县| 阳新县| 阳高县| 三河市| 鸡东县| 登封市| 广丰县| 三原县| 呼图壁县| 资中县| 贞丰县| 永仁县| 秦安县| 抚松县| 舞钢市| 祁门县| 昭苏县| 赤水市|