Python PIL从imag中提取数字

2024-05-23 15:54:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一张这样的照片: number

我想要一个黑色的数字写在白色上,这样我就可以用光学字符识别器来识别它。我怎样才能在Python中实现这一点呢?

非常感谢

约翰。


Tags: 数字照片光学黑色白色字符识别
2条回答

如果您只想将黑白图像转换为黑白图像,这很简单;它只是^{}

from PIL import Image, ImageOps
img = Image.open('zero.jpg')
inverted = ImageOps.invert(img)
inverted.save('invzero.png')

如果您还想进行一些基本的处理,比如增加对比度,请参见ImageOps模块中的其他函数,比如autocontrast。它们都很容易使用,但是如果你被卡住了,你总是可以问一个新问题。对于更复杂的增强,请查看PIL的其余部分。ImageEnhance可以用来锐化图像,ImageFilter可以进行边缘检测和取消锐化掩蔽;等等。您还可以将格式更改为灰度(L8),甚至黑白(L1);这都是在Image.convert方法中实现的。

当然,你必须知道你想做什么处理。你可能想尝试的一件事是在Photoshop或GIMP中处理图像并跟踪你所做的操作,然后寻找如何在PIL中实现这些操作。(首先使用gimp fu脚本可能比尝试使用PIL更简单…)

你不需要为OCR操作图像。例如,您可以使用pytesser

from PIL import Image
from pytesser import *
im = Image.open('wjNL6.jpg')
text = image_to_string(im)
print text

输出:

0

相关问题 更多 >