1. 程式人生 > >《驗證碼識別》教程持續更新中_前2篇已更新完畢_可試看

《驗證碼識別》教程持續更新中_前2篇已更新完畢_可試看

轉自:http://bbs.125.la/thread-13667362-1-1.html

《驗證碼識別零起點篇》 第1課、介紹點陣圖支援庫的使用 -  準備工具:
精易程式設計助手
易語言
識別的一般思路
1.讀取驗證碼
2.圖片的顏色處理
3.影象的分割
4.字模的製作
5.識別程式碼的編寫
6.識別完成
圖片處理方法 
二值化 
去白邊 
去雜點 
去幹擾線 
去背景顏色 
柔化 
高斯濾波 
細化 
......
第4課、簡單的識別程式碼編寫 識別程式碼編寫: 
讀取圖片 
分割圖片 
用字模與分割圖片進行對比 
得出識別結果

第5課、識別程式碼的優化 識別程式碼編寫: 
讀取圖片 
分割圖片 
預先載入字模資料 
遍歷字型檔(對比分割好的圖片) 
得出識別結果 
識別完成

第6課、字模的簡單加密 字模加密: 
1.需要一個可逆的加密方式(可加密可解密) 
2.製作字模的時候進行加密計算,儲存加密後的字模 
3.預先載入字模資料的時候,先進行解密 
加密的目的: 
A.讓使用者無法一看懂我們的資料檔案 
B.減小字模檔案的體積 
C. ... 

注意事項: 
1.加密演算法不要太複雜 
節約我們的加解密時間 
2.加密演算法出錯率要低 
避免我們的字模檔案在解密時出現異常錯誤影響識別效果 
3.以減小體積為最終目的 
字模個數多的時候,減少載入字模檔案的時間,提高效率

第7課、例項講解與總結 步驟: 
1.讀取圖片 
2.二值化 
3.分割 
4.做模 
5.識別 

總結 
思路清晰 
針對性處理,不要太死板 
實踐,看過教程之後,一定要自己寫一遍程式碼,不要以為看起來很簡單,自己用的時候遇到一大堆的問題 
善於利用工具 

零起點的教程到此為止; 
初級篇將講到其他分割方法,影象處理方法,和相似度識別,區域性識別,特殊識別

《驗證碼識別初級篇》
第01課、高階表格的運用 -  學習目的: 
利用高階表格反饋圖片的顏色(畫素)分佈情況,便於我們確定後期處理方案包括影象處理與分割方案的確定 
打造自己的圖片處理工具 
學習目標: 
充分利用可利用的資源,善於運用可利用的資源,合理運用可利用資源 
舉一反三 
不要被別人的思路給禁錮,敢於創新 

高階表格主要命令: 
置單元格背景顏色 
取單元格背景顏色 
取游標所在行 
取游標所在列 
第2課、正太分佈模組的瞭解,脫離易語言點陣圖支援庫 -  學習目的: 
利用可利用的資源,選擇自己喜歡的方法作為自己以後的研究方向 
對不同資料的使用要記住他們的區別 
學習目標: 
借鑑前輩們給我們留下的資料,在運用的同時,新增自己的東西,打造合適自己的,自己喜歡的工具 
不要侷限於使用別人給自己留下的東西,要善於發現,創新 

正太分佈模組的運用 
掌握使用方法 
瞭解常用命令,有條件有基礎的可以自己改造,按照自己的使用習慣,可以自己根據他人的模組打造自己合適的模組 

注意事項 
隨著使用資料的增加,每個資料他都有自己的優缺點,要記住他們的區別,有選擇性的去使用.
第3課、影象去白邊以及動態分割介紹 學習目的: 
去除黑白圖中我們不需要的部分,減少後期處理難度和時間 
當靜態分割無法達到分割目的的時候,採用動態分割來處理 

學習目標: 
培養隨機應變能力,能夠根據圖片顏色分佈的不同,選擇正確,合適的影象處理方法,不侷限於定死一種處理方式,提高效率 

圖片去白邊(無效區域)與分割 
本課重點為去白邊(無效區域) 
1.從影象中通過肉眼觀察,確定影象固定的邊框,予以清除,使其不影響其他影象處理 
2.從影象四周往中心延伸,去除黑白圖(二值化圖)中四周白色區域,減少後期處理面積 

1.橫向掃描顏色分佈,將白色區域部分,作為分割點,分割影象 
2.對橫向分割後的資料,進行縱向掃描顏色分佈,去除白色無效部分,以到達最終分割目的.(此步驟類似於去白邊)
第4課、影象快速分割(動態分割) 程式碼編寫思路: 
1.橫向掃描顏色分佈,將白色區域部分,作為分割點,分割影象 
2.對橫向分割後的資料,進行縱向掃描顏色分佈,去除白色無效部分,以到達最終分割目的.(此步驟類似於去白邊) 
3.將分割後的圖片儲存(顯示出來),驗證分割結果
第5課、字模的多樣化製作方法 根據個人習慣與識別效率,選擇字模特徵提取方法 
傳統模式:用0和1代表黑白點(零起點介紹模式,也是最常用模式) 
座標模式:記錄所有黑點(或白點)座標 
較全面的模式:提取其他點陣的同時,記錄寬高度,或者黑點(白點)個數 
其他模式:等待你的發現與創新 
精簡字模特徵 
簡單驗證碼識別是基於圖片處理,影象分割,字模提取,識別演算法而實現,精簡字模特徵能節約我們的處理時間,提高工作效率
第6課、相似度識別程式碼的編寫 流程: 
預先載入字型檔檔案,並進行解密,還原出原始點陣特徵 
根據分割圖與字模的其他引數(寬度,高度,黑[白]點個數)過濾區別太大的字模 
逐一對字模進行匹配,計算黑白點特徵碼的相似度 
中途放棄:即發現字模與要匹配的分割圖進行匹配的同時,發現很多地方匹配不上,直接放棄
第7課、簡單驗證碼識別工具的完善與總結 總結: 
眼光獨到,一眼確定處理方案 
奇思妙想,發揮自己的想象,找出快速,精準的方案 
多實踐,通過不斷的猜想,用程式碼進行驗證 
善於找錯,程式碼不能達到預期效果,要能快速找到關鍵程式碼 
善於利用除錯,寫程式碼不免會出現錯誤,不要慌了手腳,善於利用除錯,找出問題出在哪裡 
注意細節,關於圖片相關的處理,細節的地方很多,一旦細節沒注意,容易造成程式碼不能達到預期效果