zoukankan      html  css  js  c++  java
  • 使用Python进行PDF图片识别OCR

    使用场景

    使用图片识别可以快速提取图片中的信息,方便高效。

    Python并不能直接对PDF进行识别,所以如果是识别PDF的话,需要先将PDF转化为图片,然后再进行识别。

    必备工具

    Python 

    可以安装3.7及以上版本

    tesseract-ocr 

    下载地址: https://github.com/UB-Mannheim/tesseract/wiki 使用最新版本即可

    python 库pip install pytesseract

    pip install pillow
    pip install opencv-python
    pip install fitz
    pip install PyMuPDF

    代码示例

    from PIL import Image
    import os
    import pytesseract 
    import cv2 as cv
    import fitz
    
    def pdf_image(pdfPath,imgPath,zoom_x,zoom_y,rotation_angle):
        # 打开PDF文件
        pdf = fitz.open(pdfPath)
        # 逐页读取PDF
        for pg in range(0, pdf.pageCount):
            page = pdf[pg]
            # 设置缩放和旋转系数
            trans = fitz.Matrix(zoom_x, zoom_y).preRotate(rotation_angle)
            pm = page.getPixmap(matrix=trans, alpha=False)
            # 开始写图像
            pm.writePNG(imgPath+str(pg)+".png")
            #pm.writePNG(imgPath)
        pdf.close()
    pdf_path ='D:/123.pdf'
    img_path ='D:/123.png'
    pdf_image(pdf_path,img_path,5,5,0)
    # 依赖opencv
    img=cv.imread(img_path)
    text=pytesseract.image_to_string(Image.fromarray(img),lang='chi_tra')
    # 不依赖opencv写法
    # text=pytesseract.image_to_string(Image.open(img_path))
    print(text)

    总结

    识别清晰的文字图片的时候准确率非常高

    但是识别手写体的话效果不太好

    注意事项

    在安装tesseract-ocr 的时候一定要记得选择对应的语言,不然是无法正常使用的。

  • 相关阅读:
    0929作业
    0909上机作业
    熟悉的LINUX操作
    博客搭建成功啦!
    感谢管理员,通过了我的博客邀请。哈哈
    Asp.net常用的51个代码(非常实用)
    CSS命名规范:
    常用的JavaScript验证正则表达式
    Linq to sql 查询句法
    Web.config配置文件详解
  • 原文地址:https://www.cnblogs.com/xuhongfei/p/14280431.html
Copyright © 2011-2022 走看看