python對驗證碼降噪的實現(xiàn)示例代碼
前言:
最近寫爬蟲會經(jīng)常遇到一些驗證碼識別的問題,現(xiàn)如今的驗證碼已經(jīng)是五花八門,剛開始的驗證碼就是簡單的對生成的驗證碼圖片進(jìn)行一些干擾,但是隨著計算機(jī)視覺庫的 發(fā)展壯大,可以輕松解決簡單的驗證碼識別問題,于是一些變態(tài) 的驗證碼就出來了,什么滑動驗證碼,當(dāng)然這個也是比較好解決的,用python的selenium庫就可以破解一些滑動驗證碼??墒沁€出現(xiàn)了一些語音類,點擊類的驗證碼。爬蟲與反爬的較量確實越來越精彩了,也挺有趣的!最終促進(jìn)的是整個行業(yè)技術(shù)的發(fā)展與進(jìn)步。
今天分享一個可以解決簡單驗證碼識別的代碼。
圖片:
圖像灰度化處理
import cv2 import numpy as np img = cv2.imread('./picture/1.jpg') #將圖片灰度化處理,降維,加權(quán)進(jìn)行灰度化c gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) cv2.imshow('min_gray',gray) cv2.waitKey(0) cv2.destroyAllWindows()
效果:
圖像二值化處理
t,gray2 = cv2.threshold(gray,220,255,cv2.THRESH_BINARY) cv2.imshow('threshold',gray2) cv2.waitKey(0) cv2.destroyAllWindows()
效果:
8領(lǐng)域過濾
def remove_noise(img,k=4): img2 = img.copy() # img處理數(shù)據(jù),k過濾條件 w,h = img2.shape def get_neighbors(img3,r,c): count = 0 for i in [r-1,r,r+1]: for j in [c-1,c,c+1]: if img3[i,j] > 10:#純白色 count+=1 return count # 兩層for循環(huán)判斷所有的點 for x in range(w): for y in range(h): if x == 0 or y == 0 or x == w -1 or y == h -1: img2[x,y] = 255 else: n = get_neighbors(img2,x,y)#獲取鄰居數(shù)量,純白色的鄰居 if n > k: img2[x,y] = 255 return img2 result = remove_noise(gray2) cv2.imshow('8neighbors',result) cv2.waitKey(0) cv2.destroyAllWindows()
過濾后的效果:
代碼整合:
import cv2 import numpy as np img = cv2.imread('./picture/1.jpg') #將圖片灰度化處理,降維,加權(quán)進(jìn)行灰度化c gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) t,gray2 = cv2.threshold(gray,200,255,cv2.THRESH_BINARY) cv2.imshow('threshold',gray2) result = remove_noise(gray2) cv2.imshow('8neighbors',result) cv2.waitKey(0) cv2.destroyAllWindows()
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
pycharm快捷鍵自動提示documentation問題(auto?Ctrl+Q)
這篇文章主要介紹了pycharm快捷鍵自動提示documentation問題(auto?Ctrl+Q),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-04-04Python機(jī)器學(xué)習(xí)應(yīng)用之樸素貝葉斯篇
樸素貝葉斯模型是一組非常簡單快速的分類算法,通常適用于維度非常高的數(shù)據(jù)集。因為運(yùn)行速度快,而且可調(diào)參數(shù)少,因此非常適合為分類問題提供快速粗糙的基本方案2022-01-01Python利用邏輯回歸模型解決MNIST手寫數(shù)字識別問題詳解
這篇文章主要介紹了Python利用邏輯回歸模型解決MNIST手寫數(shù)字識別問題,結(jié)合實例形式詳細(xì)分析了Python MNIST手寫識別問題原理及邏輯回歸模型解決MNIST手寫識別問題相關(guān)操作技巧,需要的朋友可以參考下2020-01-01