首先是安装,我参考的是这个 http://blog.csdn.net/xinghun_4/article/details/47860645

我是centos,使用yum

yum install python-devel libjpeg libjpeg-devel freetype freetype-devel zlib zlib-devel littlecms littlecms-devel libwebp libwebp-devel libfreetype libfreetype-devel giflib-devel automake libtool

tesseract安装包我下载的是3.0.4,安装的时候提示搭配的leptonica的版本必须是1.7.2以上,所以不能使用1.6.9的leptonica,这点要注意。

上一些央行征信征信的验证码例子,这是截图

可以看到,字迹是相当的工整,但是直接使用image_to_string这个方法几乎是不可能是别的,只有少数图片可以转换输出文字。

需要做点处理,找规律可以发现这些噪点都是一些暗淡的像素点,可以把他们去掉(就是转换成白色的)。

#coding=utf-8
import pytesseract
from PIL import Image
import re
class YzmDiscern():
def __init__(self, threshold):
#self.threshold = threshold
self.table = [0 if _ < threshold else 1 for _ in range(256)] def pic2text(self,picture_name):
im=Image.open(picture_name+'.jpg')
imgry = im.convert('L')
out = imgry.point(self.table,'1')
out = imgry.point(self.table,'1')
out.save(picture_name+'b.jpg')
# i = Image.open(name+'b.jpg')
# i.show()
text= pytesseract.image_to_string(out)
#print text
text2=re.sub('[^a-z0-9A-Z]','',text)
return text2 if __name__=="__main__":
yzmDiscern=YzmDiscern(threshold=140)
print yzmDiscern.pic2text('pictures/150873460574')

这是pycharmm调用的是远程linux环境的截图,如果要在linxu直接执行./do_yzm.py,那就需要在代码第一行指明解释器路径,然后修改do_yzm.py的权限为可执行的权限.

实际识别率几乎达到了95%,效果还可以。如果错了再换个验证码登录就可以了。

这是原图

threshold这个值要设置合理,设置太大了,那些噪点全部变成黑色了。

设置小了也不行,虽然噪点都去掉了,但会把字母也弄残了。

这样就会识别不出来了。

这是设置140的结果


												

linux环境下pytesseract的安装和央行征信中心的登录验证码识别的更多相关文章

  1. Linux环境下Python的安装过程

    Linux环境下Python的安装过程 前言 一般情况下,Linux都会预装 Python了,但是这个预装的Python版本一般都非常低,很多 Python的新特性都没有,必须重新安装新一点的版本,从 ...

  2. Linux环境下NodeJS的安装配置(HelloWorld)

    Linux环境下NodeJS的安装配置(HelloWorld) 最简单的环境安装,测试helloworld.给初学者!! 安装脚本,请仔细阅读逐行执行: #!/bin/bash #检查是否已经安装 r ...

  3. Linux环境下使用yum安装zip和unzip

    Linux环境下使用yum安装zip和unzip. yum install zip yum install unzip

  4. PCL库在Linux环境下的编译安装

    PCL库在Linux环境下的编译安装 PCL库的源码库:https://github.com/PointCloudLibrary/pcl 下载完了之后解压下来 编译库的几个步骤 mkdir build ...

  5. mosquitto在Linux环境下的部署/安装/使用/测试

    mosquitto在Linux环境下的部署 看了有三四天的的源码,(当然没怎么好好看了),突然发现对mosquitto的源码有了一点点感觉,于是在第五天决定在Linux环境下部署mosquitto. ...

  6. Linux环境下MySQL5.7安装记录

    参考文档 <Installing MySQL on Unix/Linux Using Generic Binaries> https://dev.mysql.com/doc/refman/ ...

  7. Linux环境下卸载、安装及配置MySQL5.1

    Linux环境下卸载原有MySQL5.1数据库,并重新安装MySQL数据库的示例记录. 一.卸载MySQL 查看主机中是否安装了MySQL数据库: [root@RD-viPORTAL- ~]# rpm ...

  8. Linux环境下:vmware安装Windows报错误-缺少所需的CD/DVD驱动器设备驱动程序

    解决方法:将硬盘格式从SCSI改为IDE. 方法如下: 右键点击你新建的虚拟机名,点击最下面的setting,看到左侧第二行是hard disk 了么,你那里肯定是SCSI的,选中它,点最下面的rem ...

  9. Redis学习——Linux环境下Redis的安装(一)

    一.关于Redis Redis最为一款开源的key-value存储系统,自推出到现在一直受到编程人员的喜爱.它支持存储多种value类型,String .List .Set .Zset .Hash.这 ...

随机推荐

  1. git 忽略已经添加到版本库的文件

    第一步: 指令:git rm -r --cached YOUR_PATH YOUR_PATH 即 你的文件,-r 指定了递归所有的子文件夹. 第二步: 修改项目根目录下的 .gitignore 文件, ...

  2. mysql查看不同级别的字符集

    库的字符集: SELECT default_character_set_name FROM information_schema.SCHEMATA SWHERE schema_name = 'test ...

  3. js 获取页面宽度

    特例: 当$(window).width()无效时 /* 出现时机: iframe内嵌子页面在加载过程中取不到$(window).width(),非必现,机率大概1 / 20 */ 可用以下方式获取屏 ...

  4. ASP.NET中使用jQuery插件实现图片幻灯效果

    参照网上的资料及提供的jQuery插件实现图片幻灯效果. 1.页面前台代码: //头部引用 <head runat="server"><title>< ...

  5. 关于Unity中DOTween插件的使用(专题一)

    DOTween flash里面的一个概念叫补间动画,DOTween就是干这个事情的. 补间动画:在1秒钟之内从A点移动到B点,在这个之间会把动画补间补好. 当我们安装好DOTween后,它就会提供很多 ...

  6. (笔记)Linux常用命令大全

    系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS ...

  7. JVM运行时数据区与JVM堆内存模型小结

    前提 JVM运行时数据区和JVM内存模型是两回事,JVM内存模型指的是JVM堆内存模型. 那JVM运行时数据区又是什么? 它包括:程序计数器.虚拟机栈.本地方法栈.方法区.堆. 来看看它们都是干嘛的 ...

  8. MongoDB C Driver Building on CentOS

    Building on Unix Prerequisites OpenSSL is required for authentication or for SSL connections to Mong ...

  9. Java数组扩展

    Java中,数组初始化后如何扩展数组? 示例 以下示例显示如何在创建新并初始化数组后扩展数组. package com.yiibai; public class ExtendingArray { pu ...

  10. e796. 设置JSlider的方向

    Besides being either horizontal or vertical, a slider can also be inverted. An inverted horizontal s ...