OpenCV Python 驗證碼識別

2021-10-11 16:15:47 字數 1764 閱讀 1434

驗證碼識別,基於開閉操作

(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採用驗證碼,無疑是一種很不錯的措施,可以在一定程...