我有一个像这样的图像:
我希望在白色上写上黑色数字,以便我可以使用OCR识别它。我怎么能用Python实现呢?
非常感谢,
约翰。
答案 0 :(得分:3)
如果您只是想将白底黑图像变为黑白图像,那就太微不足道了;它只是invert
:
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 ...)
答案 1 :(得分:2)
您无需为OCR操作图像。例如,您可以使用pytesser:
from PIL import Image
from pytesser import *
im = Image.open('wjNL6.jpg')
text = image_to_string(im)
print text
输出:
0