python驗證碼識別——前處理

來源:互聯網
上載者:User

目前不少系統的驗證碼做得越來越複雜,人眼都難以識別,尤其是QQ之類的驗證碼,想要識別,太難了。

現在有這樣一個驗證碼:

一般的驗證碼識別,都是先進行前處理,然後分割,在進行識別。這個驗證碼沒有其他噪音,但存在一條橫穿的曲線幹擾,並且驗證碼中字型是粘連在一起的。

如果不將幹擾曲線去除,那麼整個識別將會受到一定的影響,為此,先要去掉這條曲線,首先通過的辦法是將先擷取曲線的頭位置(x,y),這一部分很簡單,代碼如下:

 1 def get_left_start_point(im):
2 start_point = (0,0)
3 found = False
4 w, h = im.size
5 data = list(im.getdata())
6 for x in xrange(w):
7 for y in xrange(h):
8 if data[ y*w + x ] != white:
9 found = True
10 start_point = (x,y)
11 break
12
13 if found:
14 break
15 return start_point

取到頭結點後,然後依次從左至右遍曆過去,上下判斷是否為黑點,將線條座標位置儲存起來,之後進行線條位置去除,(感謝孫志海朋友的提示):(代碼部分略)


於是可以得到去除黑線後的映像為:

除了幾個孤立的點,映像中的黑線基本被去除乾淨,下面是幾張是處理的比較好的:

下面這一張處理的比較差:

鑒於之前有blog內容被網路轉載,並不註明出處,因此添加下面內容:

author:ubunoon

homepage: http://qtrstudio.com

blog: http://www.cnblogs.com/ubunoon   ;   http://qtrstudio.com/blog    

email:netubu#gmail.com

copyright: Copyright 2011. All rights reserved.

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.