最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python使用Cv2模塊識(shí)別驗(yàn)證碼的操作方法

 更新時(shí)間:2023年01月03日 15:51:51   作者:業(yè)里村牛歡喜  
這篇文章主要介紹了Python使用Cv2模塊識(shí)別驗(yàn)證碼,使用Cv2模塊、pytesseract模塊進(jìn)行操作,pytesseract模塊將智能識(shí)別圖片字體數(shù)字,用于打印出來,本文通過代碼案例給大家詳細(xì)講解,需要的朋友可以參考下

業(yè)務(wù)需求

        識(shí)別驗(yàn)證碼圖片中的數(shù)字信息,用python的圖形表示出來了

需求分析

        使用Cv2模塊、pytesseract模塊進(jìn)行操作。CV2是計(jì)算機(jī)建模識(shí)別的庫(kù),用來給圖像進(jìn)行灰度處理,降噪處理,形態(tài)學(xué)分析。pytesseract模塊將智能識(shí)別圖片字體數(shù)字,用于打印出來。

代碼一

# -*- conding:utf-8 -*-
#二維碼識(shí)別,呈現(xiàn)不同效果。
#導(dǎo)入計(jì)算機(jī)學(xué)習(xí)開源數(shù)據(jù)庫(kù)
import cv2 as cv
#導(dǎo)入計(jì)算機(jī)識(shí)別模塊
import pytesseract
#導(dǎo)入圖像模塊,形成圖像
from PIL import Image
#定義函數(shù),導(dǎo)入圖像
def recognize_text(image):
    #邊緣保留濾波,去除噪
    dst = cv.pyrMeanShiftFiltering(image,sp=10,sr=150)
    #灰度圖像
    gray = cv.cvtColor(dst,cv.COLOR_BGR2GRAY)
    #圖像二值化
    ret,binary = cv.threshold(gray,0,225,cv.THRESH_BINARY_INV | cv.THRESH_OTSU)
    #形態(tài)學(xué)操作 ,腐蝕,膨脹
    erode = cv.erode(binary,None,iterations=2)
    dilate = cv.dilate(erode,None,iterations=1)
    #邏輯運(yùn)算,背景設(shè)置為白色,字體為黑色,便于識(shí)別
    cv.imshow('dilate',dilate)
    cv.bitwise_not(dilate,dilate)
    cv.imshow('binary-image',dilate)
    #識(shí)別圖像
    test_message = Image.fromarray(dilate)
    text = pytesseract.image_to_string(test_message)
    print(f'define result:{text}')
#導(dǎo)入圖像
src = cv.imread(r'./image.png')
#顯示圖像名字為input image,第二個(gè)是導(dǎo)入的圖像。
cv.imshow('input image',src)
#調(diào)取函數(shù)導(dǎo)入圖像
recognize_text(src)
cv.waitKey(0)
cv.destroyWindow()

結(jié)果分析

        導(dǎo)入的原圖image的圖片情況: 

編譯結(jié)果呈現(xiàn):

 代碼二

驗(yàn)證碼圖片Image5.png:

代碼模塊

import cv2 as cv
import pytesseract
from PIL import Image
 
 
def recognize_text(image):
    # 邊緣保留濾波  去噪
    blur = cv.pyrMeanShiftFiltering(image, sp=8, sr=60)
    cv.imshow('dst', blur)
    # 灰度圖像
    gray = cv.cvtColor(blur, cv.COLOR_BGR2GRAY)
    # 二值化
    ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINARY_INV | cv.THRESH_OTSU)
    print(f'二值化自適應(yīng)閾值:{ret}')
    cv.imshow('binary', binary)
    # 形態(tài)學(xué)操作  獲取結(jié)構(gòu)元素  開操作
    kernel = cv.getStructuringElement(cv.MORPH_RECT, (3, 2))
    bin1 = cv.morphologyEx(binary, cv.MORPH_OPEN, kernel)
    cv.imshow('bin1', bin1)
    kernel = cv.getStructuringElement(cv.MORPH_OPEN, (2, 3))
    bin2 = cv.morphologyEx(bin1, cv.MORPH_OPEN, kernel)
    cv.imshow('bin2', bin2)
    # 邏輯運(yùn)算  讓背景為白色  字體為黑  便于識(shí)別
    cv.bitwise_not(bin2, bin2)
    cv.imshow('binary-image', bin2)
    # 識(shí)別
    test_message = Image.fromarray(bin2)
    text = pytesseract.image_to_string(test_message)
    print(f'識(shí)別結(jié)果:{text}')
 
 
src = cv.imread(r'./image5.png')
cv.imshow('input image', src)
recognize_text(src)
cv.waitKey(0)
cv.destroyAllWindows()

結(jié)果呈現(xiàn)

總結(jié)經(jīng)驗(yàn)

cv2,pytesseract的使用不復(fù)雜了,按照官方操作手冊(cè)來使用即可。安裝時(shí)候記得更換一下源的地址,有一些官方的源不容易搜索到CV2和pytesseract模塊了,要更換地址源才可以用。不過代碼模塊只能識(shí)別圖片中的數(shù)字,對(duì)圖片中的中文還沒有識(shí)別出來。可能需要重新寫代碼。

 參考文獻(xiàn)

使用Python中的pytesseract模塊實(shí)現(xiàn)抓取圖片中文字

Py之cv2:cv2(OpenCV,opencv-python)庫(kù)的簡(jiǎn)介、安裝、使用方法(常見函數(shù)、圖像基本運(yùn)算等)最強(qiáng)詳細(xì)攻略

anaconda安裝open cv

Python代碼實(shí)現(xiàn)驗(yàn)證碼識(shí)別

到此這篇關(guān)于Python使用Cv2模塊識(shí)別驗(yàn)證碼的文章就介紹到這了,更多相關(guān)Python Cv2驗(yàn)證碼識(shí)別內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

师宗县| 楚雄市| 馆陶县| 临城县| 玛纳斯县| 大石桥市| 来凤县| 泊头市| 磐安县| 永丰县| 海阳市| 漳平市| 仙桃市| 潢川县| 容城县| 杭州市| 土默特右旗| 靖西县| 墨玉县| 曲沃县| 云龙县| 永州市| 临沂市| 卫辉市| 德安县| 焉耆| 永安市| 黄浦区| 朔州市| 久治县| 镇沅| 东乡| 枣阳市| 呼玛县| 资中县| 曲沃县| 商水县| 大悟县| 印江| 乐亭县| 肇东市|