解决ecplise+phthon2.7中使用pytesser和tesseract进行ocr,出现报错的问题
网上很多使用ecplise+phthon2.7中使用pytesser或者tesseract进行OCR网站验证码的案例,但配置起来实在让人崩溃。
通用步骤:
1、下载了pytesser_v0.0.1;
2、然后解压后拷贝到C:\ProgramData\Anaconda2\Lib\site-packages;
3、文件夹名字改为pytesser;
4、然后在C:\ProgramData\Anaconda2\Lib\site-packages文件夹下新建一个文件,起名为pytesser.pth,内容为pytesser
5、然后在C:\ProgramData\Anaconda2\Lib\site-packages\pytesser\pytesser.py文件中第六行,更改import Image 为 from PIL import Image;
6、然后在ecplice界面中写代码:
from PIL import Image
from pytesser import * im = Image.open('C:\\ProgramData\\Anaconda2\\Lib\\site-packages\\pytesser\\phototest.tif')
im.show()
没问题,图片顺利的打开了。
7、然后调用了下oCR的函数:
print image_to_string(im)
然后就无穷无尽的报错。
ecplice的错误提示还毫无帮助,只提示:
Traceback (most recent call last):
File "C:\Users\TF-2016\Desktop\spider\ruijie\ruijie.py", line 33, in <module>
print image_file_to_string('11.png', graceful_errors=True)
File "C:\Python27\lib\site-packages\pytesser\pytesser.py", line 48, in image_file_to_string
call_tesseract(filename, scratch_text_name_root)
File "C:\Python27\lib\site-packages\pytesser\pytesser.py", line 23, in call_tesseract
proc = subprocess.Popen(args)
File "C:\Python27\lib\subprocess.py", line 710, in __init__
errread, errwrite)
File "C:\Python27\lib\subprocess.py", line 958, in _execute_child
startupinfo)
WindowsError: [Error 2]
网上找了两个小时,很多人遇到这个问题,几乎没有解决的,最后发现有人说起了:http://blog.csdn.net/c465869935/article/details/51438576
qq_38717146
2017-05-09 17:454楼
1条回复 回复- 刚刚碰巧给解决了。找到你的pytesseract.py这个文件,将其中的tesseract_cmd = 'tesseract'这行改为tesseract_cmd = r'C:/Program Files (x86)/Tesseract-OCR/tesseract.exe'即可。
然后我决定下载一个最新版的tesseract 3.0.2版,不再依靠pytesseract自带的那个1.01版本了。
下载后安装,然后在pytesseract.py中把tesseract_exe_name = 'tesseract' # Name of executable to be called at command line 改为:
tesseract_exe_name = r'C:/Program Files (x86)/Tesseract-OCR/tesseract.exe' # 'tesseract' Name of executable to be called at command line
然后运行,ok了,可以ocr英文和数字了。
但遗憾的是,中文库是谷歌的网址,下载不下来,如果能下载下来,很期待ocr中文的效果。
解决ecplise+phthon2.7中使用pytesser和tesseract进行ocr,出现报错的问题的更多相关文章
- Eclipse中引入com.sun.image.codec.jpeg包报错的完美解决办法
转: Eclipse中引入com.sun.image.codec.jpeg包报错的完美解决办法 更新时间:2018年02月14日 17:13:03 投稿:wdc 我要评论 Java开发中 ...
- MO拆分计划行程序中写入PRODUCTIONORDERS表数据出现重复导致报错(BUG)20180502
错误提示:ORA-00001: 违反唯一约束条件 (ABPPMGR.C0248833319_6192)ORA-06512: 在 "STG.FP_MO_SPLIT", line 19 ...
- Eclipse中Tomcat Server启动后马上又自动停止报错Address已经使用8005端口 Can't assign requested address (Bind failed)
Eclipse中Tomcat Server启动后马上又自动停止报错 Can't assign requested address (Bind failed) ,打开Tomcat Server的配置页面 ...
- python2 + selenium + eclipse 中,通过django生产数据库表的时候报错
python2 + selenium + eclipse 中,通过django生产数据库表的时候报错 解决: 1.查看自己电脑中,“开始-->控制面板-->管理工具-->服务--&g ...
- laravel中ubuntu下执行php artisan migrate总是报错
ubuntu14.0 + xampp + laravel5下 laravel中ubuntu下执行php artisan migrate总是报错: [PDOException] could not fi ...
- 擦他丫的,今天在Django项目中引用静态文件jQuery.js 就是引入报错,终于找到原因了!
擦 ,今天在Django项目中引用静态文件jQuery.js 就是引入报错,终于找到原因了! 问题在于我使用的谷歌浏览器,默认使用了缓存,导致每次访问同一个url时,都返回的是缓存里面的东西.通过谷歌 ...
- Maven编译中使用${env}与直接启动tomcat会报错的问题处理
Maven编译中使用${env}与直接启动tomcat会报错的问题处理 在Run/Debug Configurations中,设置 Before lauch:Build, Build Artifact ...
- 解决:oracle+myBatis ResultMap 类型为 map 时返回结果中存在 timestamp 时使用 jackson 转 json 报错
前言:最近在做一个通用查询单表的组件,所以 sql 的写法就是 select *,然后 resultType="map" ,然后使用 jackson @ResponseBody 返 ...
- 在angular项目中使用bootstrap的tooltip插件时,报错Property 'tooltip' does no t exist on type 'JQuery<HTMLElement>的解决方法和过程
在angular4的项目中需要使用bootstrap的tooltip插件. 1. 使用命令安装jQuery和bootstrap npm install bootstrap jquery --save ...
随机推荐
- IOS Number 处理(int-->NSNumber,NSNumber-->nsinteger,string -->double,CGFloat --> dobule)
1 小结: 1)int-->NSNumber:numberWithInt 2)NSNumber-->nsinteger:integerValue 3)string -->double ...
- LeetCode 755. Pour Water
原题链接在这里:https://leetcode.com/problems/pour-water/description/ 题目: We are given an elevation map, hei ...
- C#封装的一个JSON操作类
using System; using System.Collections.Generic; using System.Collections; using System.Text; using S ...
- 记录一些WPF常用样式方便以后复用(二)(Button、CheckBox、输入账号密码框)(转)
Button (一) <Style x:Key="ButtonSaveStyle" TargetType="{x:Type Button}"> &l ...
- I/O复用——select和poll
概述 I/O多路复用(multiplexing)的本质是通过一种机制(系统内核缓冲I/O数据),让单个进程可以监视多个文件描述符,一旦某个描述符就绪(一般是读就绪或写就绪),能够通知程序进行相应的读写 ...
- ubuntu :扩充虚拟机的磁盘容量
前言: 开始建立虚拟机的时候给的容量是20G,给了10G的交换空间,所以后来有点不够用了,现在安装软件会出现提示磁盘空间不足,所以需要扩充一下磁盘的容量. 步骤: 1.因为我用的是Vmware ...
- C#实现 OPC历史数据存取研究
来源:http://blog.csdn.net/gjack/article/details/5641794 C#实现 OPC历史数据存取研究 (原文)Research of Accessing the ...
- OPCClient和OPCServer在Windows上运行方式的恩怨
http://www.diangon.com/wenku/PLC/201504/00021970.html 近段时间,遇到不少人都被OPCClient与OPCServer之间的通讯搞得头大,通过几次远 ...
- Exce信息提取
Exce信息提取 Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Sub 信息汇总( ...
- Java--mysql实现分页查询--分页显示
当数据库中数据条数过多时,一个页面就不能显示,这是要设置分页查询,首先要使用的是数据库sql语句的limit条件实现分组查询sql语句大概形式为: select * from table limit ...