2017-06-14 68 views
0

我試圖使用Tesseract OCR和楔形文字OCR從圖像中獲取文本。有沒有什麼辦法可以知道低於特定值的顏色的RGB值是否較淺顏色

但是,如果文本是小字體或字體很薄,則結果文本中會出現錯誤。

我們需要獲取文本的大部分圖像都是以較深的顏色返回文本,而圖像的其餘部分則以較淺的顏色顯示。所以我正在考慮將所有較淺的顏色轉換爲白色,然後增加緩衝圖像的大小以使得結果文本正確。 (糾正我,如果我的方法是錯誤的)。

任何人都可以提供關於如何實現這一目標將是真正有用的

回答

1

如果文字太小/細爲您OCR引擎的任何信息,那麼就沒有什麼可以做一下。

如果這是造成OCR引擎問題的對比度問題,那麼使「黑暗」變暗,「燈光」變輕是一種好方法。

下面是我以前使用和工作很好的對比度公式:

float contrast = 0.2; 
float factor = (x*(contrast + y))/(x - contrast); 

,其中x> 1.0意味着更多的對比度,並且x < 1.0意味着更少的對比度和 y是對於任何顏色分量的最大值(通常爲1.0或255)

編輯:判斷一個顏色比不同的顏色較淺:

  1. 轉換顏色爲灰度以下列方式之一:

明度方法平均最突出的和最不突出的顏色: (MAX(R,G,B)+分鐘(R,G,B))/ 2。

平均方法簡單地平均化的值:(R + G + B)/ 3。

的光度方法是平均 方法的更復雜的版本。它也對這些值進行平均,但它形成了加權平均值 以說明人類的看法。我們對綠色比其他顏色更敏感,所以綠色的權重最重。對於 光度的公式是0.21 R + 0.72 G + 0.07 B.

  • 比較所得到的值,以查看其是輕。
  • +0

    我意識到我從來沒有完全回答你的問題。我編輯了我的答案以反映解決方案。 –

    +0

    我會試試你的答案。我有另一個想法。我可以考慮如果R <125 G <125 B <125當顏色較淺時,如果任何rgb值大於125則它會變成較暗的顏色 –

    +0

    轉換爲灰度將比檢查各個組件的結果更穩定。在某些情況下,您的方法會將顏色定義爲黑色,但如果您查看顏色,則會很輕,反之亦然。亮度對於人類感知是最好的,第二種平均方法(R + G + B)/ 3對於OCR可能是最好的。 –