根据现成的开源项目 http://code.google.com/p/pytesser/改写
在window上用easy_install安装不上 看了下源码发现代码很少 于是就想自己改写一下
添加支持网络图片的直接解析
#coding:utf-8
#import sys
#reload(sys)
#sys.setdefaultencoding('utf-8')
import subprocess,urllib2,tempfile
import os,time
tesseract_exe_name = 'tesseract' # Name of executable to be called at command line
temp_dir_name = tempfile.gettempdir() # Name of executable to be called at command line
def call_tesseract(input_filename, output_filename):
args = [tesseract_exe_name, input_filename, output_filename]
proc = subprocess.Popen(args)
retcode = proc.wait()
def image_file_to_string(filename):
image_file_path = filename
text_file_path = '%s%s%sout' %(temp_dir_name,os.path.sep,time.time())
try:
call_tesseract(image_file_path,text_file_path);
text = file(text_file_path+'.txt').read()
if text.find("Error") != -1:
text = None
return text
finally:
if(os.path.exists(text_file_path+'.txt')):
os.remove(text_file_path+'.txt')
def image_url_to_string(url):
image_file_path = '%s%s%sin' %(temp_dir_name,os.path.sep,time.time())
try:
urlinfo = urllib2.urlopen(url, None,3);
if not urlinfo.headers['Content-Type'].startswith('image'):
return None
f = open(image_file_path,'wb')
f.write(urlinfo.read())
f.close()
return image_file_to_string(image_file_path);
finally:
if(os.path.exists(image_file_path)):
os.remove(image_file_path);
print image_file_to_string('D:\\pytesser_v0.0.1\\fonts_test.png')
分享到:
相关推荐
# 打开文件夹中的图片 image=Image.open('./Img/'+str(i)+'.jpg') # 灰度图 lim=image.convert('L') # 灰度阈值设为165,低于这个值的点全部填白色 threshold=165 table=[] for j in range(256): if j<
本篇将详细讲解如何使用Python和Robot Framework相结合来识别图片验证码,以及如何利用PIL库进行图像处理,以及提到了一个用于识别验证码的第三方库——pytesser。 首先,让我们了解Python和Robot Framework的基本...
以上内容基于文件中提供的信息,对如何使用Python实现滑动验证码功能进行了详细说明,涵盖了从模块安装、项目启动、前端页面实现到后端逻辑处理等多个方面。通过阅读本文档,开发者可以了解到滑动验证码的实现原理和...
在Python自动化过程中,实现登录获取图片验证码功能是一个常见的需求,特别是在网页自动化测试和爬虫项目中。本篇文章将深入探讨如何使用Python结合Selenium库来完成这一任务,并使用百度OCR API进行图片验证码的...
### Python + Selenium 解决图片验证码登录或注册问题 #### 一、引言 在Web自动化测试领域,Selenium 是一个非常流行的工具,它允许开发者编写脚本来模拟用户操作浏览器的行为,比如点击按钮、填写表单等。然而,...
3. **调用API**:在Python代码中,使用创建的软件ID和API调用识别服务,将验证码图片上传,获取返回的坐标数据。 4. **模拟点击**:使用Selenium控制Chrome浏览器,根据返回的坐标信息,执行JavaScript代码模拟鼠标...
在Python中,我们可以使用`tesseract`的Python接口,如`pytesseract`库,将处理后的图像传入`pytesseract.image_to_string()`函数,获取识别出的文本。 然而,12306验证码有时包含特殊字体或扭曲,可能导致OCR识别...
在这个项目中,我们需要用PIL来读取原始图片,并获取其像素信息。 2. **灰度图像处理**:为了将图像转换为文字,我们可能首先将其转换为灰度图像,以便简化处理过程。灰度图像只有一个通道,每个像素由一个强度值...
在编写自动化测试用例的时候,每次登录都需要输入验证码,后来想把让python自己识别图片里的验证码,不需要自己手动登陆,所以查了一下识别功能怎么实现,做一下笔记。 首选导入一些用到的库,re、Image、...
使用`pytesseract.image_to_string`函数可以将图片中的文字转换为字符串。 2. **PIL(Python Imaging Library)/Pillow**:这是Python处理图像的基础库,可以用于预处理验证码图片,如调整大小、灰度化、二值化等,...
在Python中,可以使用各种库来处理验证码。例如,Tesseract OCR(Optical Character Recognition)库可以用来识别图像中的文字。Tesseract是一个开源的OCR引擎,它能够识别多种语言的文字,包括扭曲的验证码图像。在...
为了提高测试效率,可以利用Python来自动识别验证码图片中的文本。本篇将详细介绍如何使用Python实现这一功能。 #### 二、所需库及安装 要实现这一功能,我们需要使用以下几个Python库: - `re`:用于正则表达式的...
3. **获取图片尺寸**:利用 `img.size` 获取图片的宽度和高度。 4. **检查参数合法性**:确保传入的行数和列数不会导致图片尺寸超出范围。 5. **切割图片**: - 计算每行的高度和每列的宽度。 - 循环遍历每个子...
总的来说,通过易语言,我们可以构建一个简单的验证码获取系统,包括发送HTTP请求获取图片、保存图片到本地,以及可能的OCR识别。虽然易语言的功能相对有限,但借助其与其他工具的配合,可以完成复杂的应用场景。...
Tesseract OCR是一个开源的OCR引擎,可以用于识别图像中的文字,但在处理验证码时可能需要训练特定的模型以提高识别率。 如果验证码设计得非常复杂,比如包含扭曲、旋转、遮挡等特征,那么可能需要借助深度学习的...
根据文件中的注释部分可以了解到,这是一个基于Python的验证码生成系统,使用了Django框架来处理HTTP请求,并通过Python的PIL库(Python Imaging Library,即Python图像处理库)来创建和绘制验证码图片。 ### 二、...
1. **获取验证码**:首先,我们要获取到验证码的图片。在网页上,验证码通常是动态生成的图像,可以通过浏览器的开发者工具找到对应的图片URL,然后下载保存到本地。例如,中国知网的注册页面中的验证码图片链接为...
早期的验证码形式可能包括扭曲的文字和背景颜色梯度,目的在于通过视觉扭曲防止计算机识别。随着时间发展,验证码变得更加复杂,比如通过在图像中增加一条曲线来使得图像分区更加困难,或者将符号拥挤在一起,以增加...