如何删除验证码中的行

时间:2013-07-17 03:41:13

标签: ocr captcha

我有一个简单的验证码,我想识别图片。 图片如下: enter image description here

我想使用tesseract。 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()

在这个过程之后,pic就像: enter image description here

所以我失败了。任何人都可以给我一些提示吗? 我知道如果线是像素宽度,如何删除线,但这里的线不一致。

0 个答案:

没有答案