我正在處理具有文字的圖像。問題是這些圖像是收據,經過很多轉換後,文字質量下降。 我正在使用python和opencv。 我嘗試了很多來自文檔Morphological Transformations的形態轉換的組合,但我沒有得到滿意的結果。提高圖像中字母的質量
我現在這樣做的權利(我要評論什麼,我已經試過了,只是讓註釋掉我使用的是什麼):
kernel = np.ones((2, 2), np.uint8)
# opening = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)
# closing = cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel)
# dilation = cv2.dilate(opening, kernel, iterations=1)
# kernel = np.ones((3, 3), np.uint8)
erosion = cv2.erode(img, kernel, iterations=1)
# gradient = cv2.morphologyEx(img, cv2.MORPH_GRADIENT, kernel)
#
img = erosion.copy()
有了這個,從這個原始圖像:
我得到這個:
好像你看到的那樣好一點。但它仍然太糟糕了。 OCR(tesseract)不能很好地識別這些字符。我已經訓練過,但正如你可以注意到的,每個「e」都是不同的,等等。
我得到了很好的結果,但我想,如果我解決了這個問題,他們會更好。
也許我可以做另一件事,或者使用形態轉換的更好的組合。如果還有其他工具(PIL,imagemagick等)可以使用,我可以使用它。
這裏的整體形象,所以你可以看到它的外觀:
正如我所說,這是沒有那麼糟糕,但有點是字母的更「優化」將是完美的。
嘗試使用形態閉合而不是侵蝕。至於這些字母,它們看起來與一開始有所不同,所以我認爲用簡單的算法就可以做很多事情。一些掃描儀用完全相同的位圖替換類似的字母,所以也許你可以複製這種行爲。但請注意:施樂機器中存在一個非常醜陋的錯誤,使圖書館員的生活非常不舒服 – meetaig