点击上方“小白学视觉”,选择加"星标"或“置顶”
重磅干货,第一时间送达推荐阅读
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轻松实现中文识别相关推荐

  1. 几种python入门级OCR开源库中文识别效果对比

    目录 素材图片 pytesseract easyocr PaddleOCR 总结 素材图片 pytesseract pytesseract是google做的ocr库,一般用在验证码的识别.实测中文的识 ...

  2. 使用python和pyqt5轻松上手人脸识别系统(含代码)

    使用python和pyqt5轻松上手人脸识别系统(含代码) 一. 环境配置 1.1 python环境配置 1.1.1 安装 anaconda 1.1.2 安装pycharm 1.1.3 配置pip源 ...

  3. iOS实践:OpenCV、Tesseract OCR结合 识别图片中文字

    前言: 前天领导问,类似扫描文件识别图中文字的功能如何实现,找一下第三方的开源库,尝试下,于是有了这篇文章: 分析: 识别场景中,识别身份证信息当属典型,查阅了几篇文章,后续的实现中也多导入了其代码: ...

  4. deep_ocr 是使得 OCR 比 tesseract 更好的中文识别、身份证识别等等

    deep ocr 估计很多开发员使用tesseract做中文识别,但是结果不是一般的差,譬如下面的图片 $ tesseract -l chi_sim test_data.png out_test_da ...

  5. Tesseract OCR图片提取中文并转换为Excel的示例(附Python代码)

    1.背景描述: 日常工作会遇到这样的问题,工作群中收到以截图方式转发的表格或文字信息,需要将其中大量的数据.文字等信息从图片中摘取下来,并以Excel表格的方式进行存储和统计处理. 2.流程简述: 识 ...

  6. Tesseract OCR与文本智能识别

    博主简介 博主是一名大二学生,主攻人工智能研究.感谢让我们在CSDN相遇,博主致力于在这里分享关于人工智能,c++,Python,爬虫等方面知识的分享. 如果有需要的小伙伴可以关注博主,博主会继续更新 ...

  7. python+tesseract 实现OCR-图像文字识别

    一前提:python环境,系统:mac系统 1安装依赖包 安装pillow和tesseract pip install pillow brew install tesseract pip instal ...

  8. Python「pytesseract」:中文识别模块

    在处理 .ttf 文件时,遇到了识别图片中中文的情况,常见的方式是调用百度的语言识别接口,但是这里为了大批量的识别,首先试了试 python 自带的语言识别模块 pytesseract ,这里简单做一 ...

  9. Android百度文字识别bitmap,Android集成Tesseract OCR实现图片文字识别

    最近项目需要做图片上的文字识别,在网上找了很久,这方面的知识挺多的,但是很杂.将最近学习到的东西整理一下,仅供参考. 1.Tesseract OCR 介绍我就不说了,自行百度,或者访问:https:/ ...

最新文章

  1. linux设备驱动第一篇:设备驱动程序简介
  2. 迷途指针,从百度百科上摘抄的,语言很幽默
  3. Linux系统起源及主流发行版
  4. PAT甲级题目翻译+答案 AcWing(图论)
  5. OAuth2.0学习(1-9)新浪开放平台微博认证-web应用授权(授权码方式)
  6. ensp查看历史配置命令_华为eNSP常用命令
  7. mysql索引的使用及优化方法_MySQL中索引和优化的用法总结
  8. 图解leetcode初级算法python版 pdf_图解LeetCode初级算法(Python版)
  9. 家里还装摄像头?看完B站直播毛骨悚然!
  10. 计算机职业素养论文1500字,【如何提高职业素养1500字】_个人职业素养提升计划1500字范文...
  11. WinCE 5.0下的鼠标键盘驱动分析
  12. Geohash距离估算
  13. android 打开默认浏览器,Android调用系统自带浏览器打开网页的实现方法
  14. 浏览器下载文件的两种方式
  15. 计算机cpu温度显示原理,鲁大师的测温功能是怎么做到的?测温原理介绍
  16. Mocking的概念及常见Mocking框架概述
  17. 边城性格悲剧_悲剧! 我的手表已延迟!
  18. leetcode刷题(三)——容斥原理
  19. 求解大规模稀疏多目标优化问题的一种进化算法(SparseEA)笔记
  20. mysql高效率写法_Mysql模糊查询like效率,以及更高效的写法

热门文章

  1. 清华北大“世界排名断崖式下跌”?
  2. AI一分钟 | 柯洁战胜AI“求报道”,期待正式与围棋AI下让子棋;小米MIUI 10全面启动,主打人工智能人机交互
  3. 最牛逼的性能监控系统!集强大功能于一身
  4. 为什么 SQL 语句不要过多的 join?
  5. 百度 71 个炸天的开源项目!你知道几个?
  6. 抓包工具 tcpdump 用法说明
  7. 彻底透析SpringBoot jar可执行原理
  8. Datawhale来浙大啦!
  9. 中国程序员开发的远程桌面火了!Mac 可用,只有 9MB,支持自建中继器
  10. 高效Transformer层出不穷,谷歌团队综述文章一网打尽