2017-09-14 54 views
-1

其實,我不得不在給定的圖像中找到任何文本行。如果我有兩個圖像任何方式來確定圖像中沒有文本行?

from PIL import ImageGrab 
img1=ImageGrab.grab([0,0,200,80]) 
img2=ImageGrab.grab([300,0,500,80]) 

img1 img2

第一個是IMG1 和第二個是IMG2

我怎樣才能得到輸入作爲IMG1輸出爲5 ,如果輸入img2輸出爲4 即圖像中沒有文本行

+0

您可以嘗試Web服務,例如Microsoft的Computer Vision(Azure Cognitive Services的一部分)或Google Cloud Vision。 – kindall

+0

您可以使用tesseract拍攝圖像,然後對線條進行計數。儘管圖像的質量似乎很低。 OpenCV在3.0中也有文本檢測 –

+0

tesseract給出了錯誤 –

回答

1

如果您想在不使用OCR文本的情況下執行此操作,一種方法是爲圖像中的每一行確定它是否具有一種或多種顏色。

可以將具有一種顏色的線假定爲背景,從多種顏色到單一顏色的任何轉換都是文本行的「底部」行。計算這些轉換,並在圖像中獲得文本行數。

這是假定:一條線的

  • 字符在沒有完全延伸到他們在繪製單元格的底部(這將意味着有可能永遠是一個空行,如果第一行有一個g和底部一個f或類似的配置)
  • 只有文本而不是圖片(如在你的樣本)。
+0

我怎樣才能迭代地獲得一行代碼?以及如何獲得該行的顏色。 對於一個pil圖像x我找到了一個方法x.getcolors,但我怎樣才能將一個pil圖像分割成行 –

+1

IIRC沒有這樣的函數來獲得一整行。你將不得不迭代高度並檢查像素(當然,直到你有所不同)。 – Anthon

+0

好的,謝謝讓我試試看 –

相關問題