我有一個轉換為 numpy 陣列的影像
np_image = np.array(Image.open(filename))
我正在嘗試使用pytesseract進行 OCR ,但是當文本為紅色或黃色時 ocr 失敗,因此我希望所有文本均為黑色。
我將影像分解為片段,因為我知道各個文本元素出現在哪里
正如您從下面的代碼中看到的那樣,我試圖找到彩色像素并將它們轉換為黑色,但它不起作用
snippet = np_image[top: bottom, field.left: field.right].copy()
for row in snippet:
for pixel in row:
test = [rgb for rgb in pixel[:-1]]
test.sort()
if test[0] > 190 and test[2] < 100:
pixel = [0, 0, 0, 255]
text = pytesseract.image_to_string(snippet)
我該怎么辦?
uj5u.com熱心網友回復:
pixel = [0, 0, 0, 255]沒有寫在實際影像中。它只是將值[0, 0, 0, 255]設定為區域變數pixel。假設np_image是numpy的陣列,你肯定需要寫pixel[:] = [0, 0, 0, 255],這樣np_image可以修改。
此外,該sort函式按升序對值進行排序。因此,這種情況似乎是可疑的錯誤。確實,test[0] <= test[2]必須永遠是真的。因此,如果test[0] > 190是真的,那么test[2] < 100就不可能是真的。因此,條件永遠不應該為真。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/407669.html
標籤:
