zoukankan      html  css  js  c++  java
  • 图像识别与文字处理

    图像识别与文字处理

    为了解决将图像翻译成字符的问题,python中引入了光学字符识别(Optical Character Recognition,OCR)技术,而Tesseract是目前公认最优秀和最精确的开源OCR系统

    一.OCR技术概述

    光学字符识别(Optical Character Recognition,OCR)是指对包含文本资料的图像资料文件进行分析识别处理,获取文字及版面信息的技术.一般包含以下几个过程:

    1.图像识别

    针对不同格式的图像,有着不同的存储格式和压缩格式.目前,用于存取图像的开源项目有OpenCVCxImage

    2.预处理

    预处理主要包括二值化,噪声去除和倾斜较正

    3.版面分析

    将文档图片分段楼,分行的过程叫作版面分析

    二.pytesseract和PIL

    1.pytesseract

    pytesseract是一款用于光学字符识别(OCR)的python工具,即从图片中识别和读取其中嵌入的文字.pytesseract是对Tesseract-OCR的一层封装,同时也可以单独作为Tesseract引擎的调用脚本,支持使用PIL库(python Imaging Library)读取图片文件类型

    pytesseract库中,提供如下函数将图像转换成字符串:

    image_to_string(image,lang=None,boxes=False,config=None)
    

    2.PIL

    PIL库中一个非常重要的类是Image类,该类定义在与同名的模块中

    new()函数

    Image.new(mode,size,color=0)
    

    当创建单通道图像时,color是单个值;当创建多通道图像时,color是一个元组.若省略了color参数,则图像被填充成全黑;若color参数的值为None,则图像不被初始化

    open()函数

    open(fp,mode="r")
    

    三.处理文字

    import pytesseract
    from PIL import Image
    
    image=Image.open("./data/8_1.png")
    
    text=pytesseract.image_to_string(image)
    
    print(text)
    
    I am happy
    
    hello world
    
    from IPython.display import Image
    Image(filename="./data/8_1.png",width=500)
    

    output_24_0.png

    默认情况下,pytesseract只能识别英文字符,为了让其支持中文,需要显示地指明使用中文字库.因此在调用image_to_string需要指明语言,即将lang参数的值设为chi_sim

    from pytesseract import *
    from PIL import Image
    
    data=Image.open("./data/8_2.png")
    
    text=image_to_string(data,lang="chi_sim")
    
    print(text)
    
    . 绢 i[ppg
    
    2. 机 嘴 学 习 概 述 [ppi]
    . 线 伯 模 型 [ppg]
    i
    5 卷 积 神 经 网 绕 [op]
    
    from IPython.display import Image
    Image(filename="./data/8_2.png",width=500)
    

    output_27_0.png

    四.验证码

    Image(filename="./data/8_3.png",width=500)
    

    output_29_0.png

    from random import randint
    import pytesseract
    from PIL import Image
    
    picName=str(randint(0,9))+".png"
    
    image=Image.open("./data/images/"+picName)
    
    text=pytesseract.image_to_string(image)
    
    print(picName+":"+text)
    
    2.png:W 5 4 9
    
  • 相关阅读:
    Cenots6.5 安装 Intel I219-V 网卡驱动
    nginx的安装
    NGINX 简介
    HTTP 并发响应模型
    日志相关的服务器参数详解:
    使用mysqlbinlog提取二进制日志(zz)
    浅谈mysql日志
    mysql DDL&DML 语言
    fastcgi与cgi的区别(zz)
    基于rancher部署Spring-cloud微服务系统
  • 原文地址:https://www.cnblogs.com/LQ6H/p/12940568.html
Copyright © 2011-2022 走看看