记录初次使用tesseract的过程
简介
这个谷歌的识别项目早就听说了,使用之后发现,真的很厉害。写下初次简单使用的过程吧。
安装tesseract
谷歌的开源识别项目
我下了这两个,chi是扩展的识别中文需要,只安装.exe即可,然后配置环境变量
- chi_sim.traineddata
- tesseract-ocr-w64-setup-v4.1.0.20190314.exe
安装成功
C:\Users\27569>tesseract
Usage:
tesseract --help | --help-extra | --version
tesseract --list-langs
tesseract imagename outputbase [options...] [configfile...]
OCR options:
-l LANG[+LANG] Specify language(s) used for OCR.
NOTE: These options must occur before any configfile.
Single options:
--help Show this help message.
--help-extra Show extra help for advanced users.
--version Show version information.
--list-langs List available languages for tesseract engine.
python应用识别图片
使用python调用测试,windows下,我记得我程序第一次是不通的,后来改了tesseract文件的源码的某个路径才成功运行的
requirment.txt
pillow
pytesseract
run.py
import io
import re
import pytesseract
from PIL import Image
class Ocr:
def __init__(self):
self.day_re = re.compile('(\d{4}-\d{2}-\d{2})')
self.daytime_re1 = re.compile('(\d{2}:\d{2})')
self.daytime_re2 = re.compile('(\d{2}:\d{2}-\d{2}:\d{2})')
def prepare_img(self, img):
"""图片预处理,提高识别率"""
img = img.convert('L')
threshold = 200 # 根据情况来定,127
table = []
for i in range(256):
if i < threshold:
table.append(0)
else:
table.append(1)
return img.point(table, '1')
def ocr(self, img):
"""识别"""
img = self.prepare_img(img)
return pytesseract.image_to_string(img, lang='eng', config='psm 7') # lang: eng 英文, chi_sim 中文(需要训练库)
if __name__ == '__main__':
c = Ocr()
with open('0.jpg', 'rb') as f:
image_binary = f.read()
byte_arr = io.BytesIO(image_binary)
# Image.open() 打开图片的第一种方式
img = Image.open(byte_arr)
print(c.ocr(img))
# Image.open() 打开图片的第二种方式
img = Image.open('0.jpg')
print(c.ocr(img))
记录初次使用tesseract的过程的更多相关文章
- tesseract配置过程
tesseract配置过程: 1. 为了避免配置环境变量,可以先下载一个 tesseract-ocr-setup-3.02.02.exe(tesseract配置文件夹里有),然后安装(假设安装目录为D ...
- 记录sqoop同步失败问题解决过程,过程真的是很崎岖。(1月6日解决)
记录sqoop同步失败问题解决过程,过程真的是很崎岖.事发原因:最近突然出现sqoop export to mysql时频繁出错.看了下日志是卡在某条数据过不去了,看异常.看sqoop生成的mr并未发 ...
- step_by_step_记录deepin下curl安装过程
记录 deepin 下 curl 安装过程 wget https://curl.haxx.se/download/curl-7.55.1.tar.gz .tar.gz cd curl-/ ./conf ...
- 【Android实战】记录自学自己定义GifView过程,能同一时候支持gif和其它图片!【有用篇】
之前写了一篇博客.<[Android实战]记录自学自己定义GifView过程,具体解释属性那些事! [学习篇]> 关于自己定义GifView的,具体解说了学习过程及遇到的一些类的解释,然后 ...
- 记录手动签名APK的过程
记录手动签名APK的过程 前两天更新了华为平台上的APK,被驳回,原因是新APK签名和老的APK不一致,老用户安装会失败,用命令行安装会报如下的错误: harlanc@harlancdeMacBook ...
- 记录一下安装hexo的过程
记录一下安装hexo的过程 首先你的电脑需要安装node.js和Git 安装好Git之后需要配置本机与Github之间的ssh方便更新同步博客到Github上,在一个地方新建一个文件夹作为我们博客的根 ...
- Docker初次使用与安装过程
Docker入门 Docker 简介 Docker有两个版本: 社区版(CE) 企业版(EE) Docker Community Edition(CE)非常适合希望开始使用Docker并尝试使用基于容 ...
- 记录ubuntu16.04版本安装过程中遇到的问题
记录ubuntu16.04版本安装和使用过程中遇到的些问题,方便以后查看,主要内容有: 1. ubuntu源替换 2. windows与vmware ubuntu文件夹共享 3. putty连接ubu ...
- 记录一次bug解决过程:else未补全导致数据泄露和代码优化
一.总结 快捷键ctrl + alt + 四个方向键 --> 倒置屏幕 未补全else逻辑,倒置查询数据泄露 空指针是最容易犯的错误,数据的空指针,可以普遍采用三目运算符来解决 SVN冲突解决关 ...
随机推荐
- AutoFac文档14(转载)
目录 开始 Registering components 控制范围和生命周期 用模块结构化Autofac xml配置 与.net集成 深入理解Autofac 指导 关于 词汇表 激活事件 在compo ...
- Atitit.软件仪表盘(8)--os子系统--资源占用监测
Atitit.软件仪表盘(8)--os子系统--资源占用监测 CPU使用 内存使用 磁盘队列 任务管理器 网络速度 插件列表( 资源管理器插件,浏览器插件,360optim) 启动项管理 (350) ...
- linux 终端 查看上一页
问题描述: 我在终端中使用”dpkg -l”命令显示主机中安装的软件时,发现内容很多,而当命令执行完毕后,只显示终端最后一屏的内容.前面的都无法查看,这个是很让人憋屈的.下面就这一个问题说一下我的解决 ...
- SAP ECC6安装系列三:关于SAP,你也许想知道的一些事
原作者博客 http://www.cnblogs.com/Michael_z/ ======================================== 前段时间刚好赶上 Windows 8 ...
- 基于html5和jquery的篮球跳动游戏
今天给大家分享一款基于html5和jquery的篮球跳动游戏.这款实例和之前分享的HTML5重力感应小球冲撞动画类似.用鼠标拖动篮球,篮球在页面上跳动,可在演示中看下效果.效果图如下: 在线预览 ...
- 一、thinkphp
# ThinkPHP核心文件介绍 ├─ThinkPHP.php 框架入口文件 ├─Common 框架公共文件 ├─Conf 框架配置文件 ├─Extend 框架扩展目录 ├─Lang 核心语言包目录 ...
- Linux快速定位并且杀掉占用端口的进程
1.定位 lsof -i:8811(端口号) 2.杀掉进程 kill -9 63924
- Spring.Net框架一:Spring.Net简介
一.Spring.Net简介 Spring.NET为建立企业级应用提供了一套轻量级的解决方案.通过Spring.NET,我们可以用统一且透明的方式来配置应用程序.Spring.NET的重点是为中间层提 ...
- Lua中的基本函数库
assert (v [, message])功能:相当于C的断言,参数:v:当表达式v为nil或false将触发错误,message:发生错误时返回的信息,默认为"assertion fai ...
- C#_GDI+编程教程
第7章 C#图形图像编程基础 本章主要介绍使用C#进行图形图像编程基础,其中包括GDI+绘图基础.C#图像处理基础以及简单的图像处理技术. 7.1 GDI+绘图基础 编写图形程序时需要使用GDI( ...