使用Python製作一個簡易的OCR圖片文字識別工具

2020-11-22 python高手養成

最近,快要期末考試了,平時沒有好好學習,在網上搜索了大量的考試複習資料。無奈,大多是收費版本的,對於學生黨來說,隨便下載一篇內容,無疑要花掉我們好幾頓飯的money。有沒有好的辦法呢?今天帶領大家使用Python製作一個簡易的OCR圖片文字識別工具,來解決這類問題。

Python製作一個OCR工具

【我們需要知道的幾個知識點】

OCR:中文叫光學字符識別,英文全稱是Optical Character Recognition,說白了就是從電子設備中顯示的圖片上面查找我們需要的字符,通過檢測、識別將字符翻譯成計算機文字的過程。截屏鍵:我們每個人的計算機鍵盤上面是不是有一個PrtSc,可能有的鍵盤顯示不一樣,但我的鍵盤上是這樣,其它鍵盤肯定也有,除非……呃,可能不是地球上的鍵盤,再者就是有的小鍵盤可能沒有這個鍵,但是恕我孤陋寡聞,我沒見過這種鍵盤。mspaint:我們使用windows系統時,按住『win』+ 『R』鍵(什麼?你找不到這個鍵?自行百度吧,兄嘚),會彈出一個對話框,在對話框中輸入mspaint會打開系統提供給我們的一個簡易的繪圖工具,通過這個工具可以實現對圖像的簡單處理。比如截圖,保存圖片等等操作。【思 路】

打個比方,如果你在電腦上看到了一篇很不錯的文章,使用截屏鍵(PrtSc)先把它截取下來,如果你剛好是個懶人,不想一個字一個字的去敲這些內容,而你又很想編輯這些內容。這時候,你可以打開mspaint(什麼?你找不到?那你可能使用的是別的作業系統,linux、mac、unix……我猜你是個高手,那請略過此文)。然後新建一個圖片文件,然後Ctrl+V粘貼屏幕截圖,裁剪你需要的文字,保存在一副圖片裡面。再使用我們的工具(下文烹飪),你就可以輕輕鬆鬆的獲取圖片中的文字了……

上面只是教大家一個方法,我們此文討論的重點是如何實現這個工具。本文涉及的知識點有:百度AI提供的API接口的使用、百度AI帳號的註冊以及baidu-aip庫的安裝。請大家自行上網學習。類似教材網上有好多。我們今天主要是結合這些內容做一個實例供大家使用。

【Python程序實現OCR】

我們要實現這個功能,我總結了一下,現今主要有兩種方式,各有優劣,一種是使用Tesseract-OCR庫,這種方式實現較為複雜,需要配置一些環境變量和參數,對於小白來說可能有點難度;另一種是使用百度API接口,這種方式較為直接,只要申請一個百度帳號即可免費使用,對於申請方式大家自行網絡學習,本文不做進一步探討。開始前我們需要具備下面一些條件:

百度AI中創建一個免費的圖像識別應用後,系統給你生成的AppID、API Key、Secret Key,這三個內容我們程序中需要使用的。

安裝baidu-aip模塊。當然是使用pip install baidu-aip進行安裝了。

有了這兩個先決條件,我們打開神器PyCharm,開始敲代碼吧。

Python實現OCR功能

然後,我們測試下這個方法,看看是否能返回正確的文字,我們以一副李白的《將進酒》圖片輸入,看下是否能返回裡面的文字。如片如下:

李白的《將進酒》圖片

我們在PyCharm中測試看下效果。如下圖所示。

圖片文字提取成功

【把它封裝成一個工具】

好了,我們的主要功能已經實現。現在,我們把這個方法封裝到類中,製作一個類似OCR的工具,創建一個圖形界面類。主要代碼如下所示。

首先,導入我們需要的模塊

from aip import AipOcrfrom tkinter import *from tkinter.messagebox import askyesnofrom tkinter.simpledialog import messageboxfrom tkinter.filedialog import askopenfilename, asksaveasfilenamefrom tkinter.scrolledtext import ScrolledText

然後自定義一個App類,下面是類的變量初始化代碼。

類的初始化和界面的創建

程序比較簡單,這裡就不一一解釋了,有問題的朋友們歡迎留言討論。

最重要的一步,我們對按鈕的點擊事件進行響應。

首先是打開圖片按鈕的響應事件函數,我們看下具體代碼,如下圖所示。

打開圖片文件按鈕響應事件函數

然後我們點擊另一個按鈕就會將獲取到的文本內容進行保存,當然,我們可以對識別的錯誤進行修正後保存哦……保存按鈕響應事件如下圖所示。

保存文本文件按鈕響應事件函數

我們看下界面顯示效果吧!如下圖所示。

程序執行效果演示

程序成功執行。怎麼樣,是不是很酷?需要強調的是,調用百度API需要聯網哦!並且,好像免費的圖像識別功能每天只能調用500次,所以我的AppID沒有給大家分享。對這個課題感興趣的話歡迎大家留言討論。

轉載請註明出處(百家號:Python高手養成)

相關焦點

  • Python調用百度AI製作簡易OCR圖片文字識別工具(完結篇)
    前兩篇,我們使用百度AI調用製作了一個OCR圖片文字識別工具。今天,我們對這個工具進行進一步完善。通過tkinter相關技術實現窗口拆分,在此基礎上增加圖片大小調整的功能,並對前兩篇進行梳理,提供程序的全部原始碼,方便大家使用。
  • Python圖像處理之圖片文字識別(OCR)
    OCR與Tesseract介紹   將圖片翻譯成文字一般被稱為光學文字識別(Optical Character Recognition,
  • 怎麼用工具識別圖片文字?超實用的圖片文字識別方法
    怎麼用工具識別圖片文字?有關圖片識別文字的問題相信很多小夥伴都遇到過,例如當我們看上網頁上的文本內容不能直接提取時,就可以將其製作成圖片的形式然後再用工具識別其中的文字信息達到提取效果。接下來分享一個超實用的圖片文字識別方法,有需要的小夥伴可以學習一下喲!
  • 用python識別驗證碼
    今天,我們就簡單的說下,怎麼用python來處理驗證碼。(注意:我所有的python相關的文章用的都是python3。)準備工作1、tesseract-ocr軟體Tesseract的OCR引擎最先由HP實驗室於1985年開始研發,至1995年時已經成為OCR業內最準確的三款識別引擎之一。然而,HP不久便決定放棄OCR業務,Tesseract也從此塵封。
  • 如何 提取圖片中的文字?這款Python 庫 4行代碼搞定!
    有一款軟體叫掃描全能王,想必一些小夥伴聽過,這是一個OCR集成軟體,可以將圖像內容掃描成文字。所以說,OCR作用是對文本資料的圖像文件進行分析識別處理,獲取文字及版面信息。關於EasyOCRPython中有一個不錯的OCR庫-EasyOCR,在GitHub已有9700star。它可以在python中調用,用來識別圖像中的文字,並輸出為文本。
  • 使用Python+百度OCR文字識別提取圖片內容
    ,我們常常會將圖片中的文字整理成word文檔,過去主要依靠人工識別,費時費力,隨著人工智慧技術的發展,OCR文字識別的準確度越來越高,此項工作完全可以交給系統來完成了,下面是一段Python版的文字識別代碼,使用了百度的「百度文字識別接口」。
  • 推薦幾款OCR識別App(提取圖像中的文字,適用安卓與ios)
    Ocr識別技術,說直白一點,就是把以圖像形式存在的文字變成可編輯的文字.比如要把書上的文字複製下來, 需要照著書一個一個字打,但是如果通過ocr識別軟體, 我們就可以直接通過拍照的形式把這些文字截取下來.
  • Python技術:截圖文字識別工具
    #01 截圖文字識別工具有時候在海報上面,圖片上面,或者PDF文檔中,經常出現一些唯美的文字。這個時候想要複製下來才發現不能複製。因為有的是圖片,有的是PDF。可以使用Python製作一個小工具,來識別圖片上的文字。但是保存圖片等又太麻煩,如果能截圖一鍵識別就好了。我們用Python來實現。
  • 手機怎樣識別圖片上的文字?文字如何翻譯成英文
    在工作中我們會遇到各種各樣格式的文件,其中圖片格式文件最多,如果我們想要將圖片中的文字提取出來怎麼操作?圖片中文字較少手寫敲打還行,但是文字過多進行打字就太費神費力了,怎樣可以識別圖片上的文字呢?識別文字如何翻譯成英文?遇到這種問題,其實利用手機上一些小工具就可以輕鬆解決!
  • Python驗證碼識別:利用pytesser識別簡單圖形驗證碼
    三、一般思路驗證碼識別的一般思路為:1、圖片降噪2、圖片切割3、圖像文本輸出3.1 圖片降噪所謂降噪就是把不需要的信息通通去除,比如背景,幹擾線,幹擾像素等等,只剩下需要識別的文字,讓圖片變成2進位點陣最好。
  • 有沒有能識別圖片文字和處理文本的軟體?
    豆豆日常喜歡給大家分享一些辦公工具的使用技巧,而最近有很多朋友都問我,有沒有能識別圖片裡面文字和處理文本的工具?本來問的還是很少數人,後面豆豆看到越來越多私信提到這個問題。於是,我就決定寫下這篇技巧分享給大家。確實,要找到一個好用的工具才能從根本上解決問題。
  • Python程序圖片和pdf上文字識別實例一二
    實例一:先減少背景雜音,再做圖片文字識別 為了提高識別率,先用opencv-python對掃描的圖片做預處理(減少背景雜音),然後調用pytesseract
  • ocr文字識別是什麼意思?可以識別圖片文字嗎?
    OCR文字識別是什麼意思?它是將前端攝像頭獲取的圖像進行轉換,比如識別紙質資料、各類證件、圖片的文字信息,並轉換成可編輯的電子版文件。這樣我們就不用像以前那樣手動錄入信息了,是不是大大提高了工作效率?下面筆者給大家介紹一款迅捷OCR文字識別軟體。
  • mac使用python識別圖形驗證碼!
    在網上查了很多版本的圖形驗證碼識別,目前看到最多的兩個模塊是pytesseract和tesserocr,但是因為我這裡安裝tesserocr的時候各種出錯,所以最終我鎖定了使用pytesseract。那麼接下來,就記錄下安裝以及使用過程。這裡的系統環境是mac os 10.14.
  • 在線文字圖片識別工具
    騰訊優圖,提供圖片整體文字的檢測和識別服務,返回文字框位置與文字內容。支持多場景、任意版面下整圖文字的識別,以及中英文、字母、數字、常見字符的識別。百度文字識別,支持多場景下的文字檢測識別。OCRMaker,提供在線文字識別,文字提取等服務。
  • python人工智慧-圖像識別
    pytesseract:圖像識別庫。我這裡使用的是python3.6,PIL不支持python3所以使用如下命令pip install pytesseractpip install pillow如果是python2,則在命令行執行如下命令:pip install pytesseractpip install PIL這時候我們去運行上面的代碼會發現如下錯誤
  • 提取紙質文字的魔法!手機掃描文字識別 OCR 應用推薦
    那些好用值得推薦的手機掃描文字識別 OCR 應用如果你的工作生活中經常出現紙質文檔文稿轉換成可編輯的文字的需求,那麼就真的應該好好利用這類圖片識別文字的應用了。除了之前推薦過的「主流」掃描 APP 如:Scanner Pro、掃描全能王、Abbyy TextGrabber、Office Lens、OneNote 之外,今天本文的這些工具同樣有著自己的特色。
  • 利用Python來識別並提取圖片中文字
    文字識別是利用計算機自動識別字符的技術,是模式識別應用的一個重要領域。文字識別一般包括文字信息的採集、信息的分析與處理、信息的分類判別等幾個部分。隨著我國信息化建設的全面開展,OCR文字識別技術誕生20餘年來,經歷從實驗室技術到產品的轉變,已經進入行業應用開發的成熟階段。相比發達國家的廣泛應用情況,OCR文字識別技術在國內各行各業的應用還有著廣闊的空間。隨著國家信息化建設進入內容建設階段,為OCR文字識別技術開創了一個全新的行業應用局面。文通,雲脈技術、漢王等中國文字識別的領軍企業將會更加深入到信息化建設的各個領域。
  • 想把圖片轉換文字,你正需要這個軟體
    圖片上面有文字,想要提取裡面的文字內容,會不會有很多人都是選擇直接對著圖片,一個個文字轉換到另一個文檔上。這個方式確實是可取的,但是效率會不會太低呢?這樣就很浪費時間,對照著打字的時候,也容易造成錯字。那有什麼好辦法呢?別著急!
  • 使用Python和Tesseract來識別圖形驗證碼
    Tesseract的OCR引擎最早是HP實驗室開發的,曾經是 OCR業內最準確的三款識別引擎之一。2005年該引擎交給了Google,作為開源項目發布在Google Project上了。Tesseract提供獨立程序和API兩種形式供用戶使用。純白色背景、字符規整無幹擾像素的驗證碼圖片可以直接調用tesseract程序來進行識別。