OpenCV Python + Tesseract-OCR轻松实现中文识别
点击上方“小白学视觉”,选择加"星标"或“置顶”
重磅干货,第一时间送达推荐阅读
42个pycharm使用技巧,瞬间从黑铁变王者Google C++项目编程风格指南 (中文版) 分享
转自|opencv学堂
01
软件版本
- Python3.6.5
- OpenCV-Python 4.x
- Tesseract-OCR 5.0.0-alpha.20201127
- Win10 64
02
安装与配置
安装Python SDK选择默认安装,同时勾选最下面得红色矩形框内容。
安装opencv-python开发包
pip install opencv-python
安装Tesseract-OCR Python SDK支持
pip install pytesseract
下载Tesseract-OCR 5.0.0-alpha.20201127安装包并安装!然后在环境变量中添加
C:\Program Files\Tesseract-OCR
03
验证与测试
安装与配置好OpenCV-Python与Tesseract-OCR之后,需要进一步通过代码验证正确性。打开Pycharm IDE,新建一个python项目与python文件,输入以下代码
import pytesseract as tess
print(tess.get_tesseract_version())
print(tess.get_languages())
运行结果如下:
第一行是版本信息,第二行是支持的语言信息,默认只支持英文。
Tesseract-OCR介绍
开源的OCR识别引擎,高版本识别基于LSTM,其整个处理流程如下:
检测与识别文本函数:
检测:
def image_to_boxes(image,lang=None,config='',nice=0,output_type=Output.STRING,timeout=0,
)
返回所有识别文字的Box框坐标,每一行为一个BOX信息输出
每行的前五个值分别是,识别的字符、BOX框的左上角与右下角坐标
识别
def image_to_string(image,lang=None,config='',nice=0,output_type=Output.STRING,timeout=0,
)
输入的图像通道顺序是RGB,OpenCV默认为BGR,返回的是识别结果
必输入的参数是image,其它可选
英文与数字识别
Tesseract-OCR默认支持英文与数字识别,有输入图像如下:
Python代码如下:
image = cv.imread("D:/cv4j.png")
image_rgb = cv.cvtColor(image, cv.COLOR_BGR2RGB)
text = tess.image_to_string(image_rgb, lang="eng")
content = text.replace("\f", "").split("\n")
for c in content:if len(c) > 0:print(c)
h, w, c = image.shape
boxes = tess.image_to_boxes(image)
for b in boxes.splitlines():b = b.split(' ')image = cv.rectangle(image, (int(b[1]), h - int(b[2])), (int(b[3]), h - int(b[4])), (0, 255, 0), 2)cv.imshow('text detect', image)
cv.waitKey(0)
cv.destroyAllWindows()
运行结果如下:
英文识别对无干扰的背景效果非常好!
中文识别
默认情况下Tesseract-OCR不支持中文识别,需要下载中文识别的模型文件,然后放置到安装路径的tessdata目录下:
C:\Program Files\Tesseract-OCR\tessdata
然后在运行语言检查支持代码,运行结果如下:
其中chi_sim表示中文简体支持,eng表示英文支持!
以下图为例:
识别代码
image = cv.imread("D:/yanxishe.png")
image_rgb = cv.cvtColor(image, cv.COLOR_BGR2RGB)
text = tess.image_to_string(image_rgb, lang="chi_sim")
print(text)
h, w, c = image.shape
boxes = tess.image_to_boxes(image)
for b in boxes.splitlines():b = b.split(' ')image = cv.rectangle(image, (int(b[1]), h - int(b[2])), (int(b[3]), h - int(b[4])), (0, 255, 0), 2)cv.imshow('text detect', image)
cv.waitKey(0)
cv.destroyAllWindows()
运行结果
正确率还不错,需要进一步处理一下,直接放大两倍,然后再测试一波
发现错误识别大大减少,基本可用!
下载1:OpenCV-Contrib扩展模块中文版教程
在「小白学视觉」公众号后台回复:扩展模块中文教程,即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。
下载2:Python视觉实战项目31讲
在「小白学视觉」公众号后台回复:Python视觉实战项目31讲,即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。
下载3:OpenCV实战项目20讲
在「小白学视觉」公众号后台回复:OpenCV实战项目20讲,即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。
下载4:leetcode算法开源书
在「小白学视觉」公众号后台回复:leetcode,即可下载。每题都 runtime beats 100% 的开源好书,你值得拥有!
交流群
欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~
OpenCV Python + Tesseract-OCR轻松实现中文识别相关推荐
- 几种python入门级OCR开源库中文识别效果对比
目录 素材图片 pytesseract easyocr PaddleOCR 总结 素材图片 pytesseract pytesseract是google做的ocr库,一般用在验证码的识别.实测中文的识 ...
- 使用python和pyqt5轻松上手人脸识别系统(含代码)
使用python和pyqt5轻松上手人脸识别系统(含代码) 一. 环境配置 1.1 python环境配置 1.1.1 安装 anaconda 1.1.2 安装pycharm 1.1.3 配置pip源 ...
- iOS实践:OpenCV、Tesseract OCR结合 识别图片中文字
前言: 前天领导问,类似扫描文件识别图中文字的功能如何实现,找一下第三方的开源库,尝试下,于是有了这篇文章: 分析: 识别场景中,识别身份证信息当属典型,查阅了几篇文章,后续的实现中也多导入了其代码: ...
- deep_ocr 是使得 OCR 比 tesseract 更好的中文识别、身份证识别等等
deep ocr 估计很多开发员使用tesseract做中文识别,但是结果不是一般的差,譬如下面的图片 $ tesseract -l chi_sim test_data.png out_test_da ...
- Tesseract OCR图片提取中文并转换为Excel的示例(附Python代码)
1.背景描述: 日常工作会遇到这样的问题,工作群中收到以截图方式转发的表格或文字信息,需要将其中大量的数据.文字等信息从图片中摘取下来,并以Excel表格的方式进行存储和统计处理. 2.流程简述: 识 ...
- Tesseract OCR与文本智能识别
博主简介 博主是一名大二学生,主攻人工智能研究.感谢让我们在CSDN相遇,博主致力于在这里分享关于人工智能,c++,Python,爬虫等方面知识的分享. 如果有需要的小伙伴可以关注博主,博主会继续更新 ...
- python+tesseract 实现OCR-图像文字识别
一前提:python环境,系统:mac系统 1安装依赖包 安装pillow和tesseract pip install pillow brew install tesseract pip instal ...
- Python「pytesseract」:中文识别模块
在处理 .ttf 文件时,遇到了识别图片中中文的情况,常见的方式是调用百度的语言识别接口,但是这里为了大批量的识别,首先试了试 python 自带的语言识别模块 pytesseract ,这里简单做一 ...
- Android百度文字识别bitmap,Android集成Tesseract OCR实现图片文字识别
最近项目需要做图片上的文字识别,在网上找了很久,这方面的知识挺多的,但是很杂.将最近学习到的东西整理一下,仅供参考. 1.Tesseract OCR 介绍我就不说了,自行百度,或者访问:https:/ ...
最新文章
- linux设备驱动第一篇:设备驱动程序简介
- 迷途指针,从百度百科上摘抄的,语言很幽默
- Linux系统起源及主流发行版
- PAT甲级题目翻译+答案 AcWing(图论)
- OAuth2.0学习(1-9)新浪开放平台微博认证-web应用授权(授权码方式)
- ensp查看历史配置命令_华为eNSP常用命令
- mysql索引的使用及优化方法_MySQL中索引和优化的用法总结
- 图解leetcode初级算法python版 pdf_图解LeetCode初级算法(Python版)
- 家里还装摄像头?看完B站直播毛骨悚然!
- 计算机职业素养论文1500字,【如何提高职业素养1500字】_个人职业素养提升计划1500字范文...
- WinCE 5.0下的鼠标键盘驱动分析
- Geohash距离估算
- android 打开默认浏览器,Android调用系统自带浏览器打开网页的实现方法
- 浏览器下载文件的两种方式
- 计算机cpu温度显示原理,鲁大师的测温功能是怎么做到的?测温原理介绍
- Mocking的概念及常见Mocking框架概述
- 边城性格悲剧_悲剧! 我的手表已延迟!
- leetcode刷题(三)——容斥原理
- 求解大规模稀疏多目标优化问题的一种进化算法(SparseEA)笔记
- mysql高效率写法_Mysql模糊查询like效率,以及更高效的写法
热门文章
- 清华北大“世界排名断崖式下跌”?
- AI一分钟 | 柯洁战胜AI“求报道”,期待正式与围棋AI下让子棋;小米MIUI 10全面启动,主打人工智能人机交互
- 最牛逼的性能监控系统!集强大功能于一身
- 为什么 SQL 语句不要过多的 join?
- 百度 71 个炸天的开源项目!你知道几个?
- 抓包工具 tcpdump 用法说明
- 彻底透析SpringBoot jar可执行原理
- Datawhale来浙大啦!
- 中国程序员开发的远程桌面火了!Mac 可用,只有 9MB,支持自建中继器
- 高效Transformer层出不穷,谷歌团队综述文章一网打尽