PIL - 如何检测字符?

时间:2012-03-08 23:42:41

标签: python python-imaging-library

我有黑白照片,其中包含由一些空格分隔的字符。检测每个字母的rect(顶部,底部,左侧和右侧像素)的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

PIL是一个相当简单的图像处理包 - 它可以加载/保存裁剪,执行基本变换等等 - 但它完全没有OCR基础的“计算机科学”过滤器(可在Leptonica库中使用,使用通过Tesseract)。如果Tesseract无法识别您的需求,正如您在评论中所述,请准备好阅读您自己的OCR软件。

如果你需要的只是每个角色的边界矩形,那么一个数量级更容易做到 - 使用PIL甚至可能是可行的,但是使用Python-leptonica绑定再次使用tit更容易 - 你可以使用leptonica.functions.pixFindRectangleComps - 函数的heklp是:

pixFindRectangleComps(*args)
            ('PIX', '*pixs')       
    ('l_int32', 'dist')       
    ('l_int32', 'minw')       
    ('l_int32', 'minh')       
      pixFindRectangleComps()

          Input:  pixs (1 bpp)
                  dist (max distance allowed between bounding box and nearest
                        foreground pixel within it)
                  minw, minh (minimum size in each direction as a requirement
                              for a conforming rectangle)
          Return: boxa (of components that conform), or null on error

      Notes:
          (1) This applies the function pixConformsToRectangle() to
              each 8-c.c. in pixs, and returns a boxa containing the
              regions of all components that are conforming.
          (2) Conforming components must satisfy both the size constraint
              given by @minsize and the slop in conforming to a rectangle
              determined by @dist.
(END) 

其中pix是leptonica库图像对象,“boxa”是矩形对象列表。

我已经开始为Leptonica开发Python绑定,目前可在以下网址获得:http://code.google.com/p/pylepthonica/wiki/Home - 我从未对这些绑定表示过多爱,但它们应该可以正常工作对于leptonica 1.67(现在是+/-两岁)