驗證碼識別,基於開閉操作
(1)先要安裝pytesseract工具
pip install pytesseract
遇到出錯,參照一下解決
(2)**
#引入opencv模組
import cv2 as cv
#引入numpy模組
import numpy as np
#引入sys模組
import sys
from pil import image
import pytesseract as tess
#驗證碼測試
def ocr_test(img):
#(1)灰度化,閾值分割,黑色裡面找白色!!!
img = cv.gaussianblur(img,(7,7),0)
gray = cv.cvtcolor(img,cv.color_bgr2gray)
ret,binary = cv.threshold(gray,0,255,cv.thresh_binary|cv.thresh_otsu)
#ret, binary = cv.threshold(gray,0,255,cv.thresh_binary|cv.thresh_********)
#binary = cv.adaptivethreshold(gray,255,cv.adaptive_thresh_mean_c,cv.thresh_binary,25,10)
print("threshold value: %s"%(ret)) #分割的閾值
cv.namedwindow("open_binary_image",cv.window_normal)
cv.imshow("open_binary_image",binary)
#(2)選擇核
'''kernel = cv.getstructuringelement(cv.morph_rect,(3,4))
binary = cv.morphologyex(binary,cv.morph_open,kernel)
cv.namedwindow("open_test",cv.window_normal)
cv.imshow("open_test",binary)
'''textimage = image.fromarray(binary)
text = tess.image_to_string(textimage)
#print(text)
def img_test():
img = cv.imread('e:/chenopencvblogimg/yangzhengma1.png')
#判斷是否讀取成功
if img is none:
print("could not read the image,may be path error")
return
cv.namedwindow("origin pic",cv.window_normal)
cv.imshow("origin pic",img)
ocr_test(img)
#讓顯示等待鍵盤輸入維持在那裡,否則程式跑完就閃退啦!
cv.waitkey(0)
#銷毀視窗
cv.destroyallwindows()
if __name__ == '__main__':
sys.exit(img_test() or 0)
驗證碼 簡單驗證碼識別
這裡的驗證碼是內容非常簡單的,結構非常清晰的 這裡的驗證碼是內容非常簡單的,結構非常清晰的 這裡的驗證碼是內容非常簡單的,結構非常清晰的 興之所至之所以說簡單,我覺得是這樣的 抽了五張驗證碼扔進ps,50 透明度,長這樣 只有數字為內容 每張圖的數字都在固定位置 沒有太大的干擾因素 數字字型,形態完...
驗證碼一(驗證碼生成)
根據手機好查詢密碼 return type description code for i 0 i 6 i 4位驗證碼也可以用rand 1000,9999 直接生成 將生成的驗證碼寫入session,備驗證時用 session start session verify num code 建立,定義顏色...
12306驗證碼 驗證碼的架構
最近和眾屌絲一樣,在12306上面刷著春節回家的票。與她大戰無數個回合之後,終於搶到了一張回家的高鐵票,不斷感慨最近人品還不錯。當前,在使用12306的過程中,充滿很多的心酸,念叨了鐵道部的親人很多次 罪過 其中最讓人糾結的一項即是 驗證碼。12306採用驗證碼,無疑是一種很不錯的措施,可以在一定程...