我有一个简单的验证码,我想识别图片。图片是这样的:
我想使用正方体。 http://code.google.com/p/tesseract-ocr/
但是tesseract只能用在清晰的图片上。
所以我应该预处理图片。
预处理代码是:
im = Image.open('test.png')
# text = image_to_string(im)
enhancer = ImageEnhance.Contrast(im)
im = enhancer.enhance(4)
img = img.convert("RGBA")
width,height = im.size
# pixdata = img.load()
for y in xrange(img.size[1]):
for x in xrange(img.size[0]):
if im.getpixel((x,y)) != (0,0,0):
im.putpixel((x,y),(255,255,255) )
for y in xrange(img.size[1]):
for x in xrange(img.size[0]):
if y<2 or y>(img.size[1]-3):
continue
if im.getpixel((x, y))[0]==255 and im.getpixel((x, y+2))[0]==0 and im.getpixel((x, y-1))[0]==0:
im.putpixel((x, y),(0,0,0))
# else:
# continue
list(im.getdata())
im.show()
在这个过程之后,图片是这样的:
所以我失败了。谁能给我一些提示?如果线条是像素宽度,我知道如何删除线条,但这里的线条不一致。