2017-07-01 49 views
0

我使用pyocr與Pillow和OpenCV一起從PDF文檔中提取文本。但是,PDF文檔是表單,這意味着在某些情況下,表單中項目的標籤位於文檔的最左側,而項目的值位於文檔的右側。一個例子是(點間距加點,但不存在於圖像中):在Pyocr中將文本方向從左到右更改爲

桔子價格:....................... ............... $ 15.75

蘋果價格:.......................... ............. $ 12.51

當我將圖像轉換爲文本時,它看起來就像這樣:

價格橘子:蘋果/ nprice/N 15.75 $/N $ 12.51

基本上,正在從上到下閱讀文本,然後從左到右,而不是從左到右正確然後從上到下。

在我對這個在線問題的研究中,有許多答案突出顯示瞭如何檢測文本的方向,但我已經知道我希望我的文本在所有情況下從左到右流動。所以,我的問題是,有沒有辦法在pyocr中更改默認設置,以便它始終從左向右讀取文本。我希望我的轉換後的文字是這樣的:

價格桔子:$ 15.75/N 價格的蘋果:$ 12.51/N

這是我目前使用的pyocr代碼:

def image_to_OCR(req_image_list,final_text): 
tool = pyocr.get_available_tools()[0] 
for img in req_image_list: 
    txt = tool.image_to_string(
     PI.open(io.BytesIO(img)), 
     lang='eng', 
     builder=pyocr.builders.TextBuilder() 
    ) 
    final_text.append(txt) 
return(final_text) 

回答

0

tesseract即使使用基於列的圖像也可以進行OCR。所以你不能指定方向。 您可以90旋轉圖像,然後做OCR

您可以使用numpy圖像轉換成數組,然後除以基於空行,然後保存圖像並做OCR圖像。

相關問題