m0_54223799 2024-04-17 19:27 采纳率: 0%
浏览 1

ocr文档字符识别 没有结果

识别小票那个例子的源代码
文档中第二张英文图片识别不出结果 中间图片处理过程可以展示 就是终端无结果

  • 写回答

5条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-04-17 19:27
    关注

    引自免费微信小程序:皆我百晓生

    在处理OCR(光学字符识别)时,遇到无法正确识别的情况,可能的原因有很多,包括图像质量、字体类型、光照条件等。针对你描述的问题,我们可以按照以下步骤进行排查和优化:

    1. 图像预处理:确保输入的图像清晰,没有模糊、偏色、噪点等问题。
    2. 色彩转换:将彩色图像转换为灰度图像,有助于提高识别效果。
    3. 二值化:通过阈值处理将图像转换为黑白二值图,便于后续的文字提取。
    4. 边缘检测:找到文字边界,排除背景干扰。
    5. 字符分割:将连在一起的字符分开,方便单独识别。
    6. OCR引擎选择:尝试不同的OCR引擎,比如Tesseract、PaddleOCR、EasyOCR等。

    下面是一个基于Python和Tesseract OCR的简单示例。如果你还没有安装Tesseract,可以通过pip安装:

    pip install pytesseract
    

    接下来是代码示例:

    import cv2
    import pytesseract
    from PIL import Image
    
    # 加载图像
    image = cv2.imread('your_image_path.jpg')
    gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    
    # 阈值处理
    _, binary_image = cv2.threshold(gray_image, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU)
    
    # 使用PIL进行进一步处理
    binary_pil = Image.fromarray(binary_image)
    processed_image = binary_pil.convert("L")
    
    # 进行OCR识别
    text = pytesseract.image_to_string(processed_image, lang='eng', config='--psm 6')
    
    print(text)
    

    在这段代码中,我们首先读取图像并将其转换为灰度。然后,我们应用Otsu's二值化方法自动确定阈值,将图像转换为黑白。接着,我们将二值图像转换为PIL图像,并将其转换为单色模式。最后,我们使用Tesseract进行OCR识别,指定语言为英语,并设置参数--psm 6来处理多列文本。

    如果这个基本流程仍无法解决你的问题,你可能需要尝试调整图像处理步骤,例如调整阈值、使用不同的边缘检测算法(如Canny、Sobel等),或者对图像进行旋转、缩放等操作以适应OCR引擎。

    如果你还有其他具体问题,比如关于代码的具体部分不理解,或者想要尝试其他的OCR库,随时告诉我,我会提供更多的指导和帮助。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 4月17日

悬赏问题

  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音
  • ¥30 Pytorch深度学习服务器跑不通问题解决?
  • ¥15 部分客户订单定位有误的问题
  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Bug traq 数据包 大概什么价
  • ¥15 在anaconda上pytorch和paddle paddle下载报错
  • ¥25 自动填写QQ腾讯文档收集表