2017-02-22 60 views
1

我使用的是Google Vision API,主要用於提取文本。我工作得很好,但對於需要API掃描輸入行的特定情況,在移至下一行之前吐出文本。但是,API看起來似乎正在使用某種邏輯,使其在左側從上到下掃描並移動到右側,並執行從上到下的掃描。如果API從左向右讀,向下移動等,我會很喜歡。文本提取 - 逐行

例如,考慮圖像:

John Doe - Profile

的API返回這樣的文字:

「 Name DOB Gender: Lives In John Doe 01-Jan-1970 LA 」 

然而,我本來期望是這樣的:

「 Name: John Doe DOB: 01-Jan-1970 Gender: M Lives In: LA 」 

我想有一種方法來定義塊大小或ma rgin設置(?)逐行讀取圖像/掃描線?

感謝您的幫助。 亞歷

回答

0

您可以提取基礎上每行邊界的文本也可以使用boundyPoly,並在同一行

"boundingPoly": { 
     "vertices": [ 
      { 
      "x": 87, 
      "y": 148 
      }, 
      { 
      "x": 411, 
      "y": 148 
      }, 
      { 
      "x": 411, 
      "y": 206 
      }, 
      { 
      "x": 87, 
      "y": 206 
      } 
     ] 

例如這2個字是在同一個「行」串聯文本

"description": "you", 
     "boundingPoly": { 
     "vertices": [ 
      { 
      "x": 362, 
      "y": 1406 
      }, 
      { 
      "x": 433, 
      "y": 1406 
      }, 
      { 
      "x": 433, 
      "y": 1448 
      }, 
      { 
      "x": 362, 
      "y": 1448 
      } 
     ] 
     } 
    }, 
    { 
     "description": "start", 
     "boundingPoly": { 
     "vertices": [ 
      { 
      "x": 446, 
      "y": 1406 
      }, 
      { 
      "x": 540, 
      "y": 1406 
      }, 
      { 
      "x": 540, 
      "y": 1448 
      }, 
      { 
      "x": 446, 
      "y": 1448 
      } 
     ] 
     } 
    } 
+0

謝謝,這是一種可能性。 –

0

這可能是一個遲到的答案,但添加它以備將來參考。 您可以向您的JSON請求添加功能提示以獲得所需的結果。

{ 
    "requests": [ 
    { 
     "image": { 
     "source": { 
      "imageUri": "https://i.stack.imgur.com/TRTXo.png" 
     } 
     }, 
     "features": [ 
     { 
      "type": "DOCUMENT_TEXT_DETECTION" 
     } 
     ] 
    } 
    ] 
} 

對於文本,這是非常遙遠的DOCUMENT_TEXT_DETECTION也沒有提供適當的線分割。

以下code根據字符多邊形座標進行簡單的線段分割。

enter image description here

https://github.com/sshniro/line-segmentation-algorithm-to-gcp-vision

+0

我看到了這段代碼,它閱讀起來很簡短,但我想在Java中使用它,如何隱藏它? –

+0

語法或多或少相同。該算法使用多邊形計算庫,因此應該使用類似的庫來確定某個點是否位於Java中的多邊形內部。 –

+1

謝謝,我在java中使用:兩個矩形的空間重疊 –