我有黑白照片,其中包含由一些空格分隔的字符。检测每个字母的rect(顶部,底部,左侧和右侧像素)的最佳方法是什么?
答案 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(现在是+/-两岁)