如何正确预处理含数字的小图块以适配Tesseract OCR?
如何正确预处理包含数字的小图块以适配Tesseract OCR?
输入图像:包含多组带数字和字母的小单元格的图块,部分单元格为无效空白或干扰项
示例输出单元格:单个清晰的包含数字+字母的有效单元格(如38搭配对应字母的样式)
代码实现:
if abs(averageArea - area) <= 0.15 * area: cellImg = preprocess(img[y:y + h, x:x + w]) cell = Cell() cell.x = x cell.y = y cell.w = w cell.h = h cell.content = pytesseract.image_to_string(cellImg).strip()
控制台输出:
Row 0: 38h 38p Row 1: 38} Row 2: 38a 38C 38g
当前预处理函数(尝试多种方法后仅保留resize):
def preprocess(img): img_resized = cv2.resize(img, None, fx=5, fy=5, interpolation=cv2.INTER_CUBIC) # tried gaussianblur and otsu bin after return img_resized
目前无法得到正确的识别结果,但在线OCR工具可正确识别,该工具的方案应为通用方案。请问操作中存在哪些问题?有什么优化建议或方向吗?
需完成的核心步骤
- 拆分输入图像为更小的单元格,以区分无效单元格
- 放大小单元格
- 在OCR识别前应用多种预处理方法
内容的提问来源于stack exchange,提问作者Xellios
相关产品推荐
相关产品推荐

