首页 > 解决方案 > OpenCV - 图像文本增强 - OCR 预处理

问题描述

我的目标是预处理图像(从视频中提取)以进行 OCR 检测。文本始终为黑色,如下例所示: 在此处输入图像描述

我尝试使用年龄框架和 HVS 掩码:

cv2.accumulateWeighted(frame,avg2,0.005)
#res2 = cv2.convertScaleAbs(avg2)
    # Convert BGR to HSV
    hsv = cv2.cvtColor(imgray, cv2.COLOR_BGR2HSV)
    # define range of black color in HSV
    lower_val = np.array([0,0,0])
    upper_val = np.array([179,255,127])
    # Threshold the HSV image to get only black colors
    mask = cv2.inRange(hsv, lower_val, upper_val)
    # invert mask to get black symbols on white background
    mask_inv = cv2.bitwise_not(mask)
    cv2.imshow("Mask", mask)

但结果还不够好。寻找一些可能的解决方法。谢谢

标签: python-3.xocropencv3.0image-preprocessing

解决方案


这些类型的图像,其中文本实例无法轻易分离,tesseract 不会提供良好的结果。如果您想从文本实例清晰的文档/纸张/pdf 等中提取文本,Tesseract 是一个不错的选择。

对于您的问题,我建议您分别遵循文本检测和文本识别模型。对于文本检测,您可以使用最先进的模型,例如东部文本检测器,它能够在困难的图像中定位文本。它将在图像中的文本周围生成边界框,然后可以将该框提供给另一个文本识别模型,该模型将执行实际的识别任务。

对于文本检测:East 或任何其他最新模型对于文本识别:基于 CRNN 的模型

请尝试实现上述模型,我相信它们的性能会比你从 Tesseract 得到的更好:)

BR!


推荐阅读