基于Eclipse下的python图像识别菜鸟版(利用pytesseract以及tesseract)
这是我注册博客后写的第一篇博客,希望对有相关问题的朋友有帮助。
在图像识别前,首先我们要做好准备工作。
运行环境:windows7及以上版本
运行所需软件:(有基础的可以跳过这一段)eclipse,pydev,anaconda2,tesseract-ocr(图像识别引擎),pytesseract组件,PIL组件
操作:安装eclipse,在eclipse的help菜单栏中选择Eclipse Marketplace搜索pydev,安装pydev,下载anacondea2,下载安装tesseract(如果安装过程中有错请直接点跳过,因为那是选择的语言包无法下载的意思,因为这个软件的是国外公开的,相关资源的下载需要越狱)。
安装完上述软件后,在cmd即命令指示窗口中打开到anaconda2的Scripts下输入 pip install PIL,等安装好后再输入pip install pytesseract。
记得要在项目中添加上你要识别的英文图片(建议是像我给的这样的图片),名字随意吧,不过要记得改代码呦!图片展示:
接下来就是运行程序了以下是运行代码截图及结果。
这是识别的结果不过识别准确率非常差,而且目前只能识别英文,要识别中文的话需要相关语言包,具体如何操作我也不太懂(有用中文识别成功的朋友请不吝赐教)
上述是我在eclipse中运行的结果,当然不是直接运行代码就出来的了,是经历了一个历时极长且极度痛苦的纠错过程。
如果直接运行的结果是这样的,额,好吧调整过一次后不会再再出现那个错误了。
不过我大概还记得错误是这样的,
首先eclipse会报错在text=pytesseract.image_to_string(lena)这一行具体提示啥我忘了,
中间好像是提示pytesseract.py中某一行出错
最后显示win 2[error]就是这个错
我在查了多个网站后,找到了错误原因。具体操作是在pytesseract中修改
tesseract_cmd = 'tesseract.exe'中的tesseract.exe为tesseract在你本机上的路径载在前面加r如下图所示:
# CHANGE THIS IF TESSERACT IS NOT IN YOUR PATH, OR IS NAMED DIFFERENTLY
tesseract_cmd = r'C:\Program Files (x86)\Tesseract-OCR\tesseract.exe'
img_mode = 'RGB'
这样代码就能正常运行了。
其实也可以直接在tesseract中使用的
打开命令指示符
输入如下图所示的代码就行了,结果会在图片那一目录显示
然后桌面就会多一个result.txt来显示结果,如果有语言包且配置完备的朋友可以尝试一下用中文识别图片。个人提示一下如果是自己手敲代码的话看到-1要注意了很可能是-l(我是找的有点憔悴了)。
基于Eclipse下的python图像识别菜鸟版(利用pytesseract以及tesseract)的更多相关文章
- eclipse下的python环境安装
添加python开发环境到eclipse: 点击help--install New Software 点击add,弹出新窗口: Name:填PyDev Location:填 http://pyde ...
- 转 ——eclipse下进行Python开发 环境配置
python for eclipse插件安装1.下载python for eclipsepython for eclipse下载地址,如:org.python.pydev.feature-1.6.3. ...
- JETSON TK1 ~ 基于eclipse下开发ROS
此文档是在PC端开发后移植到TK1,并非在TK1上安装eclipse 官方使用IDE开发的文档: http://wiki.ros.org/IDEs 一:安装eclipse 1.下载eclipse安装包 ...
- Centos7下安装python环境
前言 centos7默认是装有pyhton的. #检查python版本 [root@oldboy_python ~ ::]#python -V Python 但是众所周知,python2版本到2020 ...
- Windows下安装Python及Eclipse中配置PyDev插件
最近开始接触Python,鉴于之前安装Java的教训,决定这次边安装Python,边写下历程,供日后反复使用. 在Python官网http://www.python.org/下载Python版本,鉴于 ...
- [z]Windows 下基于 Eclipse 的可视化远程 Linux C/C++ 开发环境搭建
http://blog.csdn.net/lostaway/article/details/8086056 1.简介 Windows 下远程 Linux 开发工具,比较著名的就是 WinGDB 和 M ...
- eclipse下python的selenium自动化环境的搭建
前提:安装python,我用的2.7.8版本,并在环境变量path里设置;E:\Python1.解压setuptools(Python包管理工具),cmd到目录执行python setup.py in ...
- eclipse下配置安装ssm图文教程(web版)
eclipse下配置安装ssm图文教程(web版) 一.安装所需jar包 1.1 mybatis安装包 可以进入GitHub的https://github.com/mybatis/mybatis-3 ...
- $Django 多表操作(增删改查,基于双下划线,对象的查询) 在Python脚本中调用Django环境
在Python脚本中调用Django环境. import osif __name__ == '__main__': os.environ.setdefault("DJANGO_SETTING ...
随机推荐
- Django 连接Mysql异常处理
启动manage.py提示 连接数据库异常 django.db.utils.OperationalError: (2003, "Can't connect to MySQL server o ...
- 造成MySQL全表扫描的原因
全表扫描是数据库搜寻表的每一条记录的过程,直到所有符合给定条件的记录返回为止.通常在数据库中,对无索引的表进行查询一般称为全表扫描:然而有时候我们即便添加了索引,但当我们的SQL语句写的不合理的时候也 ...
- selenium测试报告(含通过率统计图和失败截图)
前言: 介绍的是含饼状统计图及失败截图的测试报告文件. 原文地址:https://testerhome.com/topics/9984 此版本增加了如下功能 测试报告完全汉化,包括错误日志的中文处理 ...
- HDU1042 N!(大数问题,万进制)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1042 N! Time Limit: 10000/5000 MS (Java/Others) M ...
- for 循环使用 enumerate 以及yield生成器简单例子
>>>seq = ['one', 'two', 'three'] >>> for i, element in enumerate(seq): ... print i ...
- 学习JavaWeb aop两种配置方式
aop aop:面向切面编程,它可以解决重复代码. aop有两种方式: 一..xml方式 1.在springmvc-servlet.xml中配置aop,应用bean文件: <!--aop配置-- ...
- 轻松构建 基于docker的 redis 集群
下面跟着我来 一步一步构建redis 集群吧. 集群的目录结构见GitHub源码(文章末尾) 1,安装docker环境,根据自身的操作系统,google下即可. 2,我们在服务器上,搭建所需目录结构. ...
- PHP代码优化—array_push
PHP中数组插入数据通常有这么几种: 定义的时候直接赋值 $arr = array('apple', 'banana'); 使用数组变量操作 $arr = array(); $arr[] = 'app ...
- mapreduce二次排序详解
什么是二次排序 待排序的数据具有多个字段,首先对第一个字段排序,再对第一字段相同的行按照第二字段排序,第二次排序不破坏第一次排序的结果,这个过程就称为二次排序. 如何在mapreduce中实现二次排序 ...
- C语言中堆内存的开辟和释放与内存处理函数
C语言动态分配内存,malloc的出现就是来弥补静态内存分配的缺点 比如说我们在定义数组的时候,数组的长度必须是一个常量,不能改变的值,假如我事先定义了数组,一旦业务需求发生改变,那么这个数组就不能再 ...