# -*- coding: UTF-8 -*-
# 导入打开图片的库
from PIL import Image
# 导入识别图片的库
from pytesseract import *
import PIL.ImageOps
def initTable(threshold=200):
table = []
for i in range(256):
if i < threshold:
table.append(0)
else:
table.append(1)
return table
# 打开图片
im = Image.open('1.gif')
#图片的处理过程 从颜色图像转为黑白图像, PLG 使用 PIL库使用ITU-R601-2 luma转换公式:
# L = R * 299/1000 + G * 587/1000 + B * 114/1000
im = im.convert('L')
# 当转换为2位图像(模式“1”)时,源图像首先被转换为黑白图像。结果数据中大于127的值被设置为白色,
# 其他的设置为黑色;这样图像会出现抖动。如果要使用其他阈值,更改阈值127,可以使用方法point()。
# 为了去掉图像抖动现象,可以使用dither选项。
# 改变图像的阈值,为了更好的识别图片里面的内容
binaryImage = im.point(initTable(), '1')
# 修改完阈值的设置为L模式 也就是转化为黑白图像
im1 = binaryImage.convert('L')
# 对图像进行校准
im2 = PIL.ImageOps.invert(im1)
# 校准完了以后设置为模式1
im3 = im2.convert('1')
# 继续设置为黑吧图像
im4 = im3.convert('L')
#将图片中字符裁剪保留
box = (15,0,85,28)
# 设置图片的大小
region = im4.crop(box)
#将图片字符放大
out = region.resize((120,38))
# 讲图片识别出来
asd = pytesseract.image_to_string(out)
print asd
print (out.show())
图片识别1
最新推荐文章于 2022-07-25 10:02:47 发布