2024-06-02 08:29:53 发布
网友
我正试图通过Tesseract为OCR准备图像。 但是,某些字符序列会相互接触(由于字体标志符号上的衬线),这会使其混淆
例如I/U:
I/U
我注意到每个角色都有一个明亮的轮廓。如果可以用深色来代替,这些字母将获得一些喘息的空间
img_grey[img_grey > 100] = 0
。。。但我不能完全让它工作
有人知道更好的技术吗
您可以尝试腐蚀图像,在opencv中有一个称为腐蚀的操作,在这种情况下,它基本上收缩了角色的厚度。这应该在字符之间留出一些空间,但注意不要过度,否则tesseract可能无法识别字符。通过反复试验可以得到正确的误差量
有关更多详细信息,请参阅此Link
使用OpenCV,您可以将其转换为灰度,然后应用大津阈值获得二值化图像,然后对其进行腐蚀:
import cv2 import numpy as np im = cv2.imread('image.png') im = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY) _, th = cv2.threshold(im, 120, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU) kernel = np.ones((5,5), np.uint8) # Increase iterations if you want it thinner eroded = cv2.erode(th, kernel, iterations=2) cv2.imwrite('eroded.png', eroded)
您可以尝试腐蚀图像,在opencv中有一个称为腐蚀的操作,在这种情况下,它基本上收缩了角色的厚度。这应该在字符之间留出一些空间,但注意不要过度,否则tesseract可能无法识别字符。通过反复试验可以得到正确的误差量
有关更多详细信息,请参阅此Link
使用OpenCV,您可以将其转换为灰度,然后应用大津阈值获得二值化图像,然后对其进行腐蚀:
相关问题 更多 >
编程相关推荐