PIL - как обнаружить персонажей? - PullRequest
0 голосов
/ 09 марта 2012

У меня есть черно-белая картинка, которая содержит символы, разделенные пробелами между ними.Как лучше всего определить прямоугольник (верхний, нижний, левый и правый пиксели) каждой буквы?

1 Ответ

1 голос
/ 09 марта 2012

PIL - это довольно простой пакет для работы с изображениями - он может загружать / сохранять кадрирование, выполнять базовые преобразования и т. Д., Но в нем полностью отсутствуют фильтры «информатики», которые являются базовыми для распознавания текста (они доступны в библиотеке Leptonica, используетсяпо Тессеракту).Если Tesseract не может распознать, что вам нужно, как вы заявляете в комментариях, приготовьтесь к действительно тяжелой работе, читая ваше собственное программное обеспечение для распознавания текста.

Если все, что вам нужно, это ограничивающие прямоугольники для каждого символа, это будетбыть на порядок проще - это может быть даже осуществимо с PIL, но опять же, с привязкой к Python-leptonica будет проще - вы можете использовать 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" - список прямоугольных объектов.

Я запустил привязки Python для Leptonica, в настоящее время доступные по адресу: http://code.google.com/p/pylepthonica/wiki/Home - у меня былос тех пор я не очень люблю эти привязки, но они должны хорошо работать для лептоники 1.67 (которой сейчас +/- два года)

...