利用Python來識別並提取圖片中文字

2021-01-18 數據皮皮俠

文字識別是利用計算機自動識別字符的技術,是模式識別應用的一個重要領域。文字識別一般包括文字信息的採集、信息的分析與處理、信息的分類判別等幾個部分。

文字識別可應用於許多領域,如閱讀、翻譯、文獻資料的檢索、信件和包裹的分揀、稿件的編輯和校對、大量統計報表和卡片的匯總與分析、銀行支票的處理、商品發票的統計匯總、商品編碼的識別、商品倉庫的管理,以及水、電、煤氣、房租、人身保險等費用的徵收業務中的大量信用卡片的自動處理和辦公室打字員工作的局部自動化等。以及文檔檢索,各類證件識別,方便用戶快速錄入信息,提高各行各業的工作效率。

隨著我國信息化建設的全面開展,OCR文字識別技術誕生20餘年來,經歷從實驗室技術到產品的轉變,已經進入行業應用開發的成熟階段。相比發達國家的廣泛應用情況,OCR文字識別技術在國內各行各業的應用還有著廣闊的空間。隨著國家信息化建設進入內容建設階段,為OCR文字識別技術開創了一個全新的行業應用局面。文通,雲脈技術、漢王等中國文字識別的領軍企業將會更加深入到信息化建設的各個領域。

在文字識別中,許多應用軟體可以幫我們忙,那麼強大的python可以實現圖片中的文字識別嗎?

    在學習python的圖像識別中,我們了解到關於中文的識別,效果比較好而且開源的應該就是Tesseract-OCR了,python裡面也有一個包去使用Tesseract-OCR,這個包叫pytesseract。但是在學習過程中,我發現利用百度 AI 開發平臺的 OCR 文字識別 API 也可以識別並提取圖片中的文字。

首先,我們需要一個百度帳號,然後打開百度AI開放平臺(https://ai.baidu.com/)並登陸,點擊「控制臺」,進入左邊欄中的「文字識別」,創建一個應用,並記住你的AppID,API Key和Secret Key。

    然後,我們在cmd窗口,安裝百度ai接口的庫。


好了,到這裡基本工作已經做完。接下來是文本識別並且提取的核心部分:


def baiduOCR(picfile, outfile):                filename = path.basename(picfile)        APP_ID = '****'     API_KEY = '****'    SECRECT_KEY = '****'    client = AipOcr(APP_ID, API_KEY, SECRECT_KEY)        i = open(picfile, 'rb')    img = i.read()    print("正在識別圖片:\t" + filename)    message = client.basicGeneral(img)    print("識別成功!")    i.close();

以上即為利用百度api文字識別並提取中的識別部分,接下來只需要將提取文字提取出來即可。

想要將識別的文字提取出來,我們需要做以下設置:

   

with open(outfile, 'a+') as fo:        fo.writelines("+" * 60 + '\n')        fo.writelines("識別圖片:\t" + filename + "\n" * 2)        fo.writelines("文本內容:\n")                for text in message.get('words_result'):            fo.writelines(text.get('words') + '\n')        fo.writelines('\n'*2)    print("文本導出成功!")    print()



import globfrom os import pathimport osfrom aip import AipOcrfrom PIL import Imagedef convertimg(picfile, outdir):    '''調整圖片大小,對於過大的圖片進行壓縮    picfile:    圖片路徑    outdir:圖片輸出路徑    '''    img = Image.open(picfile)    width, height = img.size    while(width*height > 4000000):          width = width // 2        height = height // 2    new_img=img.resize((width, height),Image.BILINEAR)    new_img.save(path.join(outdir,os.path.basename(picfile)))def baiduOCR(picfile, outfile):                filename = path.basename(picfile)        APP_ID = '****'     API_KEY = '****'    SECRECT_KEY = '****'    client = AipOcr(APP_ID, API_KEY, SECRECT_KEY)        i = open(picfile, 'rb')   img = i.read()    print("正在識別圖片:\t" + filename)        message = client.basicGeneral(img)           print("識別成功!")    i.close();            with open(outfile, 'a+') as fo:        fo.writelines("+" * 60 + '\n')        fo.writelines("識別圖片:\t" + filename + "\n" * 2)        fo.writelines("文本內容:\n")                for text in message.get('words_result'):            fo.writelines(text.get('words') + '\n')        fo.writelines('\n'*2)    print("文本導出成功!")    print()if __name__ == "__main__":    outfile = 'export.txt'    outdir = 'tmp'    if path.exists(outfile):        os.remove(outfile)    if not path.exists(outdir):        os.mkdir(outdir)    print("壓縮過大的圖片...")    for picfile in glob.glob("picture/*"):        convertimg(picfile, outdir)    print("圖片識別...")    for picfile in glob.glob("tmp/*"):        baiduOCR(picfile, outfile)        os.remove(picfile)    print('圖片文本提取結束!文本輸出結果位於 %s 文件中。' % outfile)    os.removedirs(outdir)

相關焦點

  • 快速提取圖片中的文字的3種方法
    我們在工作中可能都會遇到提取圖片中文字的問題吧,那麼遇到提取圖片中文字的問題我們應該如何解決呢?也許有人是直接對著電腦打字這種簡單粗暴的解決方法。這種方法雖然可行,但是實際操作起來,效率不免顯得有點低下,那麼下面就來為大家分享三種快速簡單的提取圖片中文字的教程吧。
  • Python驗證碼識別:利用pytesser識別簡單圖形驗證碼
    ,涉及到計算機圖形學,機器學習,機器視覺,人工智慧等等高深領域……簡單地說,計算機圖形學的主要研究內容就是研究如何在計算機中表示圖形、以及利用計算機進行圖形的計算、處理和顯示的相關原理與算法。三、一般思路驗證碼識別的一般思路為:1、圖片降噪2、圖片切割3、圖像文本輸出3.1 圖片降噪所謂降噪就是把不需要的信息通通去除,比如背景,幹擾線,幹擾像素等等,只剩下需要識別的文字,讓圖片變成2進位點陣最好。
  • 怎麼識別圖片中文字?哪個軟體可以識別圖片中文字?
    如今,學會使用辦公軟體已成為職場人必須要掌握的技能了,比如圖片識別文字軟體、pdf轉換器、視頻剪輯器等都是很常見的辦公工具。鑑於在生活中,無論什麼行業或多或少都會拍照、然後提取文字信息,所以今天我便來給有需要的夥伴安利一款迅捷文字識別APP。
  • 在線把圖片內文字識別出來並轉換成文本的好辦法
    我們在工作的時候,有時候需要的文字信息位於圖片中,無法直接複製。這時,需要藉助於文字識別技術,將圖片中的文字識別出來,才能進行複製和再利用。而能識別圖片中文字的軟體很多,但是大多數專用軟體要付費使用。圖片轉為文字的操作方法方法一:在電腦上打開迅捷OCR文字識別軟體,然後進入它的主界面,在此我們可以大致瀏覽一下它的功能分布,其【批量識別】和【單張快速識別】就是我們操作所需要的功能了,如果我們需要進行多張圖片的轉換我們就點擊【批量識別】如果我們只需單張的圖片識別我們就點擊【單張快速識別】,大家根據自己的情況進行選擇,小編這裡就以單張為例吧點擊【
  • 手機怎樣識別圖片上的文字?文字如何翻譯成英文
    在工作中我們會遇到各種各樣格式的文件,其中圖片格式文件最多,如果我們想要將圖片中的文字提取出來怎麼操作?圖片中文字較少手寫敲打還行,但是文字過多進行打字就太費神費力了,怎樣可以識別圖片上的文字呢?識別文字如何翻譯成英文?遇到這種問題,其實利用手機上一些小工具就可以輕鬆解決!
  • 使用Python和Tesseract來識別圖形驗證碼
    一、關於圖形驗證碼識別與tesseractOCR儘管多數圖型驗證碼只有區區幾個數字或字母,但你可能聽說了,在進行機器識別的過程中,你要收集樣本,對圖片去噪、二值化、提取字符、計算特徵,甚至還要祭出神經網絡去訓練數據進行機器學習……還沒開幹,退堂鼓早打響三遍了。
  • 如何 提取圖片中的文字?這款Python 庫 4行代碼搞定!
    OCR本質是圖像識別,其包含兩大關鍵技術:文本檢測和文字識別。先將圖像中的特徵的提取並檢測目標區域,之後對目標區域的的字符進行分割和分類。它可以在python中調用,用來識別圖像中的文字,並輸出為文本。❝https://github.com/JaidedAI/EasyOCR❞
  • Python圖像處理之圖片文字識別(OCR)
    ,沒有歪歪斜斜的字沒有超出圖片範圍,也沒有殘缺不全,或緊緊貼在圖片的邊緣   下面將給出幾個tesseract識別圖片中文字的例子。  接著是稍微有點傾斜的文字圖片th.jpg,識別情況如下:可以看到識別的情況不如剛才規範字體的好,但是也能識別圖片中的大部分字母。
  • 用python識別驗證碼
    今天,我們就簡單的說下,怎麼用python來處理驗證碼。(注意:我所有的python相關的文章用的都是python3。)準備工作1、tesseract-ocr軟體Tesseract的OCR引擎最先由HP實驗室於1985年開始研發,至1995年時已經成為OCR業內最準確的三款識別引擎之一。然而,HP不久便決定放棄OCR業務,Tesseract也從此塵封。
  • Python實現識別圖片中的所有人臉並顯示出來
    使用Python3實現識別圖片中的所有人臉並顯示出來,代碼如下:
  • python|圖像識別
    影響力之大和最吸引人的技術就是圖像識別,圖像識別技術是人工智慧的一個重要領域,它是指利用計算機對圖像進行處理、分析和理解,以識別各種不同模式的目標和對象的技術。今天以女神宋慧喬的兩張不同照片為例,利用python識別其相似度,從而判定是否是同一人,同時讓我們對圖像識別有個初步的了解,什麼?照片可以換蒼老師和波老師嗎?我懷疑你們在開車,可是我沒有證據!
  • Python程序圖片和pdf上文字識別實例一二
    實例一:先減少背景雜音,再做圖片文字識別 為了提高識別率,先用opencv-python對掃描的圖片做預處理(減少背景雜音),然後調用pytesseract
  • 使用Python+百度OCR文字識別提取圖片內容
    ,我們常常會將圖片中的文字整理成word文檔,過去主要依靠人工識別,費時費力,隨著人工智慧技術的發展,OCR文字識別的準確度越來越高,此項工作完全可以交給系統來完成了,下面是一段Python版的文字識別代碼,使用了百度的「百度文字識別接口」。
  • 實用:使用Python+百度圖片識別提取營業執照信息
    營業執照樣本在很多應用場景中,會得到客戶營業執照圖片,如何將營業執照裡面的信息保存到系統,在過去主要靠人工錄入,既浪費時間、浪費人力,準確率也不是很好,人工智慧時代,利用百度圖片識別技術,很容易解決這一難題,Python示例如下:天哪,很簡單,有木有,有木有?
  • 怎麼快速識別圖片文字,教你又快又簡單的圖片文字提取方法
    怎麼快速識別圖片文字?相信很多小夥伴都遇到過想要識別圖片文字但是又不知道怎麼處理,只能將圖片中的文字一個一個用鍵盤敲出來。其實除了碼字的方式我們還可以用迅捷OCR文字識別軟體識別圖片把其中的文字提取出來。
  • 輕鬆識別圖片中的文本,英文字體也可以
    上一篇文章,小丁給大家介紹了識別圖片中文字的操作。然後,評論區有很多小夥伴就問我,除了中文,可以識別英文嗎?小丁在這裡回答大家,是可以的!迅捷ocr文字識別軟體也提供了識別外文的功能,小丁就依大家的需求,再寫下本篇操作步驟來給大家看看。
  • 如何識別圖片文字?這個方法你試一試
    今天小甜甜來給大家分享一個關於圖片識別的操作方法,因為我發現了一個特別好用的關於把圖片識別出文字的操作方法,不僅僅只能識別一張文字,而且可以批量識別的哎!這能夠幫助我們省出了多少碼字的寶貴時間!簡直就是人類的福音啊!廢話不多說,我們直接進入正題!教大家兩種關於識別圖片中文字的操作方法吧!
  • 基於python+OpenCV模塊的人臉識別定位技術
    本文將基於OpenCV模塊,在windows作業系統上,利用python語言,進行人臉識別技術的研究。當然OpenCV的應用領域很廣,除了人臉識別之外,它還支持圖像分割、動作識別、視頻處理等技術。第8行是對灰度圖像中的人臉進行識別定位,返回值為坐標信息。第10行畫出矩形框。第11行展示出圖像。第12行表示按鍵盤上的「q」鍵退出while true循環。14行和15行釋放攝像機,關閉窗口。其實代碼最核心的一句就是第8行,對人臉進行識別定位,但是這一步,我們通過直接調用別人已經訓練好的資料庫,一步完成了。
  • 使用python3+opencv3實現的識別答題卡的例子(01)
    由於工作需要,最近在研究關於如何通過程序識別答題卡的客觀題的答案,之前雖然接觸過python,但對於計算機視覺這一塊卻完全是一個陌生的領域,經過各種調研
  • 三種用Python從圖像數據中提取特徵的技術
    但是要注意,人們是以視覺的形式觀察圖像的,可以輕鬆區分邊緣和顏色,從而識別圖片中的內容。然而機器很難做到這一點,它們以數字的形式存儲圖像。請看下圖:機器以數字矩陣的形式儲存圖像,矩陣大小取決於任意給定圖像的像素數。