2013-11-20 89 views
7

我想創建一個答案紙標記(選擇題)python應用程序。答案紙將被掃描到圖像文件(gif,png,jpg,無論需要什麼格式)。Python OCR:將掃描圖像轉換爲文本進行處理

我的應用程序可以訪問存儲所有答案的數據庫。

所以,它需要的只是掃描圖像中的某種數據,以便它可以比較答案並計算出標記。

的答卷已經固定,像這樣的表格式(答案將在「X」標記由候選人表明自己的答案)尺寸:

enter image description here

通過網絡搜索後,我發現有幾個OCR API可用。

第一個是Pytesser。它非常易於使用,結果相當不錯。但它只適用於純文本的圖像。所以,我認爲這是不合適的。

我發現的第二個是Ocropus。這似乎強大,但在它的文檔

的Windows

OCRopus依賴於POSIX路徑名和文件系統有很多。 您可能可以在Windows上使用安裝OCRopus。更簡單的方法 是安裝VirtualBox並在Ubuntu下在VirtualBox下運行OCRopus。

所以我認爲它主要是爲Linux。我找不到窗戶平臺的詳細安裝指南。 (我是初學者,所以我可能是錯的)

我發現的第三個是python-tesseract,包裝爲Tesseract OCR。在他們的page中,提供了安裝指南。基本上,我需要,

  1. 蟒蛇,正方體,win32.deb
  2. 蟒蛇,OpenCV的
  3. numpy的

,但我對如何在窗口安裝.deb文件沒有任何線索。我已安裝opencvnampy

因此,下面是我的問題:

(1)在其辦法可以將表格轉換成圖像處理數據(它甚至有可能?)?

(2)有沒有其他有用的OCR API,我在這裏沒有提到可能有用? (3)最後(我的愚蠢想法)是否可以使用PIL將圖像拆分爲小卡盤(基於表格單元的大小 - 因爲表格尺寸已知),然後使用pytesser將每個小圖像轉換爲文本,然後相應地處理數據?

供參考:我只需要它的Windows平臺,可能爲Windows XP 32位。我正在使用Python 2.7.5。

+0

.deb是Linux Deiban/Ubuntu pachage文件,您基本上不要在Windows上安裝這些文件。 – McAbra

回答

3

答案符合您的數字

1)OCR是一般很辛苦,但你)測試得分處理(好消息,我覺得這是近一個解決的問題。在這方面,對於這些問題已經有了可靠的解決方案。學校系統一直在這樣做,以便自動化評分'scantron'測試多年,所以如果你有權訪問這些資源,那麼這條路線可能是你最好的選擇。至少你應該檢查他們是如何做到這一點

2)我肯定還有其他的,但這些是主要的免費的,我知道的

3)我想如果你正在嘗試做這一個預算和時間不是問題,你的'愚蠢'的想法其實並不傻。這可能是實現這一目標的最佳方式,並且scantron測試評分員很可能使用類似的方法。您知道測試表單的確切尺寸。你可以知道在哪裏看直接像素映射。你可以很容易地使用pytesser。請記住,pytesser有時需要您調整圖像的大小(有時會上升,有時會下降)以獲得最佳的準確性。

3)b您可能需要考慮滾動您自己的解決方案。你可以使用形態學操作的概念(numpy和其他圖像庫可以做到這一點幾乎開箱即用)。您甚至可能不需要這些運算符,只需執行表格行的二進制閾值(假設您已將圖像剪切成表格行),並簡單地查找斑點並將得分標記爲來自具有最多斑點值的列。