使用Python基于OpenCV和Tesseract的OCR
OCR
OCR(Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程。
Tesseract(识别引擎)
简介
Tesseract是一款由HP实验室开发由Google维护的开源OCR引擎,当时在1995年已经成为OCR业内最准确的三款识别引擎之一,后开源并委托Google对其进行改进、优化,特点是开源,免费,支持多语言,多平台。
Tesseract目前已作为开源项目发布在Google Project,它与Leptonica图片处理库结合,可以读取各种格式的图像并将它们转化成超过60种语言的文本。同时,与Microsoft Office Document Imaging(MODI)相比,其还可以不断训练其他库,使图像转换文本的能力不断增强。
项目地址:https://github.com/tesseract-ocr/tesseract
一、下载并安装OCR字符识别库Tesseract
1)下载
地址:https://digi.bib.uni-mannheim.de/tesseract/
下载对应版本:tesseract-ocr-w64-setup-v5.0.0.20190623.exe
2)安装
勾选额外的语言(中文):展开Additional language data(download) --> 勾选Chinese


安装路径:C:\ProgramData\Tesseract-OCR(注意:安装路径不要出现中文)

3)配置环境变量
Path --> 编辑 --> 新建 --> C:\ProgramData\Tesseract-OCR
4)验证
Tesseract -v

二、安装Python包
pip install Pillow== pip install pytesseract==
三、OCR识别
import pytesseract
from PIL import Image
image = Image.open('Text.png')
code = pytesseract.image_to_string(image,lang='chi_sim')
print(code)


问题:未找到Tesseract-OCR安装路径

解决:在C:\Anaconda3\Lib\site-packages\pytesseract目录下,修改pytesseract.py

使用Python基于OpenCV和Tesseract的OCR的更多相关文章
- 两种Python基于OpenCV的固定位置半透明水印去除方案
1. 基于 inpaint 方法(网上的方法,处理质量较低) 算法理论:基于Telea在2004年提出的基于快速行进的修复算法(FMM算法),先处理待修复区域边缘上的像素点,然后层层向内推进,直到修复 ...
- python基于opencv实现人脸定位
import cv2 # 读取图片 img = cv2.imread("image.jpg") # 加载模型,模型可以从https://github.com/opencv/open ...
- python基于OpenCV的人脸识别系统
想获得所有的代码,请下载(来自我的CSDN): https://download.csdn.net/download/qq_40875849/11292912 主函数: from recognitio ...
- 使用Python基于OpenCV的验证码识别
Blog:https://blog.csdn.net/qq_40962368/article/details/89312429(Verification_Code_Identification) 步骤 ...
- 使用Python基于OpenCV的图像油画特效
算法步骤: 1.获取图像的灰度图片 2.设计一个小方框(4x4/8x8 /10x10等),统计每个小方框的像素值 3.将0-255的灰度值划分成几个等级,并把第二步处理的结果映射到所设置的各个等级中, ...
- BugKu 2B+基于python的opencv的安装-------CTF 盲水印的套路
BugKu杂项-2B 下载图片后,binwalk下跑一跑,发现有个zip,分离. 值得一提的是,这个zip是伪加密的. 但是你在分离的时候,伪加密的图片也给你分离出来了.这两个图片2B和B2肉眼看起来 ...
- Python图像处理丨基于OpenCV和像素处理的图像灰度化处理
摘要:本篇文章讲解图像灰度化处理的知识,结合OpenCV调用cv2.cvtColor()函数实现图像灰度操作,使用像素处理方法对图像进行灰度化处理. 本文分享自华为云社区<[Python图像处理 ...
- 基于python的OpenCV图像1
目录 1. 读入图片并显示 import cv2 img = cv2.imread("longmao.jpg") cv2.imshow("longmao", i ...
- 基于 opencv 的图像处理入门教程
前言 虽然计算机视觉领域目前基本是以深度学习算法为主,但实际上很多时候对图片的很多处理方法,并不需要采用深度学习的网络模型,采用目前成熟的图像处理库即可实现,比如 OpenCV 和 PIL ,对图片进 ...
随机推荐
- Codeforces 979 D. Kuro and GCD and XOR and SUM(异或和,01字典树)
Codeforces 979 D. Kuro and GCD and XOR and SUM 题目大意:有两种操作:①给一个数v,加入数组a中②给出三个数x,k,s:从当前数组a中找出一个数u满足 u ...
- 08.青蛙跳台阶 Java
题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). 思路 暴力枚举(自顶向下递归): 若台阶数小于等于0,返回0: 若台阶 ...
- 使用root配置的hadoop启动时报错
一.报错信息: Starting namenodes on [master] ERROR: Attempting to operate on hdfs namenode as root ...
- 20175215 2018-2019-2 第十一周java课程学习总结
第13章 Java网络编程 13.1 URL类 URL类是java.net包中的一个重要的类,URL的实例封装着一个统一资源定位符(Uniform Resource Locator),使用URL创建对 ...
- laravel 5以后数据库插入自动转化方式
- BFC是什么?有什么作用?
BFC(Block Formatting Context)直译为“块级格式化范围”. 一.常见定位方案 在讲 BFC 之前,我们先来了解一下常见的定位方案,定位方案是控制元素的布局,有三种常见方案: ...
- Linux性能分析之上下文切换
而在每个任务运行前,CPU 都需要知道任务从哪里加载.又从哪里开始运行,也就是说,需要系统事先帮它设置好 CPU 寄存器和程序计数器 CPU 寄存器,是 CPU 内置的容量小.但速度极快的内存.而程序 ...
- 计算机组成原理 — CPU 中央处理器
目录 文章目录 目录 前文列表 逻辑电路部件 组合逻辑电路 时序逻辑电路 阵列逻辑电路 中央处理器(CPU) 控制单元(控制器) 运算单元(运算器) 存储单元(寄存器组和片内缓存) CPU 的工作原理 ...
- LoadRunner参数化详解
LoadRunner参数化详解 距离上次使用loadrunner 已经有一年多的时间了.初做测试时在项目中用过,后面项目中用不到,自己把重点放在了工具之外的东西上,认为性能测试不仅仅是会用工具,最近又 ...
- 关于 About
关于我 我是 Ivy,目前武汉大学 GIS 专业在读硕士研究生,业余渣程序媛. 写了一些不起眼的代码(参看我的 GitHub),做了一些不起眼的小研究(参看我的 ResearchGate). 关于本站 ...