首页 > 编程语言 >Python实现光学字符识别技术-开源cnOCR

Python实现光学字符识别技术-开源cnOCR

时间:2024-01-19 10:03:02浏览次数:31  
标签:文字 CnOCR 字符识别 ocr img Python cnOCR 识别 图片

CnOCR介绍

  1. CnOCR是一个用于中文OCR(光学字符识别)的Python 3工具包。它支持简体中文、繁体中文(部分模型)、英文和数字的常见字符识别,并支持竖排文字的识别。CnOCR主要针对排版简单的印刷体文字图片,如截图图片、扫描件等。
  2. CnOCR的基本原理包括两个步骤:文本检测和文字识别。文本检测用于检测图片中文字所在的位置,而文字识别则用于识别包含文字的图片局部,预测具体的文字。
  3. CnOCR自带了20+个训练好的识别模型,适用于不同应用场景。这些模型可以分为两阶段:第一阶段是获得OCR图片的局部编码向量,第二部分是对局部编码向量进行序列学习,获得序列编码向量。序列编码模型包括两层的LSTM网络、两层的GRU网络和两层的全连接网络。
  4. 然而,CnOCR目前内置的文字检测和分行模块无法处理复杂的文字排版定位。如果要用于场景文字图片的识别,需要结合其他的场景文字检测引擎使用。
  5. 总的来说,CnOCR是一个方便使用的中文OCR工具包,安装后即可直接使用,无需额外训练。但需要注意的是,它主要适用于排版简单的印刷体文字图片,对于复杂的文字排版定位可能需要结合其他工具或引擎使用。

CnOCR的使用示例如下

首先,需要安装CnOCR。可以通过pip进行安装:

python复制代码
 pip install cnocr

国内用户可以选择使用豆瓣源进行安装:

python复制代码
 pip install cnocr-i https://pypi.doubanio.com/simple

推荐使用Python 3.6及以上版本。

安装完成后,就可以使用CnOCR进行文字识别了。这里给出一个基本的示例:

python复制代码
 from cnocr import CnOcr  
 
   
 
 ocr = CnOcr()  
 
 result = ocr.ocr('path_to_image.jpg')  # 替换为你的图片路径  
 
 print("识别的文字:", result)

注意,这里返回的是一个列表,每个元素代表一行文字的识别结果,包括文字、置信度和坐标等信息。

此外,CnOCR还支持对单行文字进行识别,可以指定图像的路径或直接使用MXNet读取图像,示例如下:

python复制代码
 from cnocr import CnOcr  
 
 import mxnet as mx  
 
   
 
 ocr = CnOcr()  
 
 img_fp = 'path_to_image.jpg'  # 替换为你的图片路径  
 
 img = mx.image.imread(img_fp, 1)  # 1表示灰度图,0表示彩色图  
 
 result = ocr.ocr_for_single_line(img)  # 识别单行文字  
 
 print("识别的文字:", result)

标签:文字,CnOCR,字符识别,ocr,img,Python,cnOCR,识别,图片
From: https://blog.51cto.com/u_15327572/9325279

相关文章

  • Flask企业级后台管理 Python 应用开发框架
    项目介绍一款Python语言基于Flask、Layui、MySQL等框架精心打造的一款模块化、高性能、企业级的敏捷开发框架,本着简化开发、提升开发效率的初衷触发,框架自研了一套个性化的组件,实现了可插拔的组件式开发方式:单图上传、多图上传、下拉选择、开关按钮、单选按钮、多选按钮、图片裁......
  • Python Matplotlib 绘图辅助功能
    ​ 1、添加标题和轴标签使用 plt.title("标题文本") 方法来添加图表标题。使用 plt.xlabel("X轴标签") 和 plt.ylabel("Y轴标签") 方法来添加X轴和Y轴的标签。常用参数如下,函数描述plt.title(label,loc='center',pad=None, fontsize=None,color=None......
  • python ssh连接mysql
    fromsshtunnelimportSSHTunnelForwarderimportpymysqlclassMySqlSSH:def__init__(self):self.server=SSHTunnelForwarder(ssh_address_or_host=('13.229.92.6',22),#sshhostssh_username='lenox......
  • CPLEX通过Python API获取Gap值的方法
    写在前面最近在使用Cplex求解模型,尽管Cplex的PythonAPI会自动输出引擎日志,但在多次求解中一次次看引擎日志找Gap值并做实验记录很麻烦,所以需要找到获取Gap值的方法。然而我在Cplex的官方文档中并没有找到这个方法,然后我就一个个去试这些方法,可算是给我试出来了。解决方法在Cpl......
  • Python - Playwright安装
    前言:Playwright是专门为满足端到端测试的需要而创建的。Playwright支持所有现代渲染引擎,包括Chromium、WebKit(Safari的浏览器引擎)和Firefox。在Windows、Linux和macOS上进行本地测试或在CI上进行测试.与Selenium+driver不同的是,Pw需要使用定制版的浏览器。如果本地......
  • python中的+=
    注意点:就地修改: 使用+=会就地修改可变对象,如列表或字典,而不是创建一个新的对象。这意味着原始对象会被改变。与+运算符的区别:+=与+运算符不同。对于不可变对象(如字符串、元组等),+=通常会创建一个新对象,而不是就地修改。可变对象vs不可变对象:对于可变对象(如列表、字典),+......
  • 波达方向估计(DOA)-Python代码实现MVDR
    https://mp.weixin.qq.com/s/61I1aBTwJ3ykw0uuceLKkQ模拟一个由三根全向天线组成的阵列,然后使用数组来模拟到达阵列的信号。相邻天线之间:1/2波长(也称为“半波长间隔”)。将模拟发射机的信号以一定角度theta到达该阵列。另外在这个接收到的信号中添加噪声。importnumpyasnp......
  • 波达方向估计(DOA)-Python代码实现
    https://mp.weixin.qq.com/s/fMGc8ziglySGKr1fY8Jvkw模拟一个由三根全向天线组成的阵列,然后使用数组来模拟到达阵列的信号。相邻天线之间距离为1/2波长(也称为“半波长间隔”)。将模拟发射机的信号以一定角度theta到达该阵列。另外在这个接收到的信号中添加噪声。importnumpy......
  • 猜字谜python文心一言
    猜字谜是一种经典的智力游戏,通过猜测谜底中的字母来逐步揭示谜底。在Python中,我们可以使用一些简单的方法来实现猜字谜游戏,并提供一些提示和反馈,使游戏更加有趣。首先,让我们来看看猜字谜游戏的基本流程。游戏开始时,我们会先设定一个谜底,这个谜底可以是任意长度的单词或短语。然后,......
  • python之数据类型
    字符串详解                                          1.centerdefcenter(self,*args,**kwargs):#realsignatureunknown"""Returnacenteredstringoflengthwi......