python软件长什么样子图片_Python_python图片识别小程序 | 学步园

之前看了,网上一些python 图片识别的小程序。自己也试着写个来测试下!

运行环境  Linux  CentOS  +python 2.7 +PIL库+ Tesseract3.0+pytesser

环境搭建:

Linux下安装python就不说了,这里主要说如何安装pytesser,PIL和Tesseract

1.检查系统是否已经安装以下库:

libpng   , libjpeg ,libtiff,zlibg-dev

#yum list | grep libpng

#yum list | grep libjpeg

#yum list | grep libtiff

#yum list | grep zlibg

没安装上就安装:

#yum install libpng

#yum install libjpeg

#yum install libtiff

#yum install zlibg

2.安装Tesseract:

解压压缩包:

进入解压后的文件夹:

#cd tesseract-3.00

安装:

#./configure --prefix=/opt/tesseract  #使用--prefix 来指定安装的目录,我这里的安装目录是/opt/tesseract

#make

#make install

安装完成后要配置PATH,修改用户home目录下的 .profile或者.bash-profile我这里是修改.bash-profile。在PATH那里加上 以下内容。

:/opt/tesseract/bin

令配置文件生效:

#. .bash-profile

3.安装PIL:

解压压缩包:

#tar -zxvf Imaging-1.1.7.tar.gz

进入解压后的文件夹:

#cd Imaging-1.1.7

安装:

#python setup.py install

4.安装pytesser:

解压压缩包:

#unzip pytesser_v0.0.1.zip

建议创建一个文件夹,把压缩包放到文件夹里在解压,因为直接使用unzip来解压会把压缩包里的东西解压到当前目录,不易管理。

5.测试:

在pytesser目录下创建img_to_text.py内容如下:

from pytesser import *             #导入pytesser文件

def img_to_text(filename):

img = Image.open(filename)    #读取图片文件

img.load()                                #这里要是不用load()方法,有时会提示找不到object。

if len(img.split())==4:                #这里主要把图片的model分离

r,g,b,a = img.split()          #把图片的4个model或是通道付给r,g,b,a(r红色通道,g绿色通道,b蓝色通道,a透明alpha 通道),PIL在bmp图片是不支持a通道的。而图片识别,是先要把图片转换成bmp格式在进行识别的。

img = Image.merge("RGB",(r,g,b))    #去掉a通道,重新组合图片。

return image_to_string(img)                #调用pytesser中的image_to_string()方法,进行图文转换。方法中用到了tesseract引擎。

if __name__ == '__main__':

img_to_text()

print "OK"

测试:

我这里那了几张网上商城的价格图片进行识别:

上图是原图:

¥符号不能识别,不过对数字部分没影响。

测试别的图片:

这张通过转换成bmp再识别的图片可以识别出¥符合。不过有时就算转换成bmp图片也是不能识别出¥符号。

不过要获取价格可以截取string第3个字符之后的字符。也就是获取string[2]及其后的字符了。

ps:Tesseract 提供多国语言库,可以到文章中Tesseract的下载页面下载。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值