我想创建一个小脚本,它将字母与文档图像分开。到目前为止,我有一张两个字母的图片,以及一组比较每个像素的函数,如果前面的字母中没有像素,则创建一个字母,否则将像素添加到字母中。我已经尝试调试了一个小时,但不知道可能出了什么问题。这是我的代码的一部分:
def findChars():
    im = Image.open("img-190.gif")
    letters = []
    for x in range(im.size[0]):
        for y in range(im.size[1]):
            px = im.getpixel((x,y))
            if(px == 0):#black
                found = False
                for letter in letters:
                    for pixel in letter.pix:
                        if(isNextTo((x,y),pixel) == True):
                            found = True
                            letter.pix +=((x,y),)
                            #print len(letter.pix)
                            break
                if(found == False):
                    letters.append(Letter((x,y)))
                    print "Appended"
    print len(letters)
我正在实施的算法:因为我可以假设所有字母都是分开的,所以我可以遍历所有像素并将它们分组为字母。我检查一个像素是否有任何已经在一个字母组中的邻居。如果答案是肯定的,我将它添加到同一个组,如果不是,我创建另一个。最后,我有一组独立的像素。
问题是它没有正确添加它们。图片上有两个字母,它找到49组(字母)。
这是我的其他功能代码:
def isNextTo(spix,qpix):
    DIST = 1
    if(qpix[0]< spix[0]-DIST or qpix[0]> spix[0]+DIST):
        return False
    if(qpix[1]< spix[1]-DIST or qpix[1]> spix[1]+DIST):
        return False
    return True