Дифференцировать строку таблицы от больших букв - PullRequest
1 голос
/ 05 октября 2010

Я выполняю некоторую графическую обработку, и у меня есть логика, где у меня есть растровое изображение с краями, и я игнорирую все края таблицы из букв. Например:

0000000000
0111111110
0100000010
0102220010
0100200010
0100200010
0100000010
0111111110
0000000000

0 - цвет фона1 - игнорируемые края2 - ребра, которые мне нужны

Моя логика проста: если количество непрерывных пикселей превышает определенный порог, например, 20 пикселей непрерывных ребер, он будет рассматривать его как линию и игнорировать ее.

Моя проблема в том, что при большом размере шрифта и буквах, таких как H и T, он определенно превысит пороговое значение.Пожалуйста, посоветуйте, есть ли лучший способ или дополнительная логика, которую мне нужно реализовать, чтобы отделить строки таблицы от букв.

[обновление] Дополнительные соображения: Производительность, эта логика будет использоваться во время движения касанием (перетаскивания).Он будет вызываться много раз, поэтому он должен быть быстрым.

1 Ответ

1 голос
/ 05 октября 2010

Если линии таблицы гарантированно будут тонкими, игнорируйте толстые линии.Однако, если линии в вашем приложении генерируются с помощью обнаружения кромок (которые всегда имеют толщину 1 пиксель), тогда потребуется подключенный компонент.

По существу, «толщина» относится к толщине, измеренной по профилю кромки:

  • 00000000100000000 Эта толщина имеет толщину 1
  • 00000011111000000 Эта толщина имеет толщину 5. Однако, это не может происходить на выходе обнаружения края, поскольку алгоритмы обнаружения края специально разработаны для устранения этого условия.
  • 00000000111111111 Это переход от черного к белому.

Строки таблицыобычно имеют небольшую толщину.Большие шрифты обычно имеют переход от черного к белому, потому что их толщина больше, чем у краевого профиля.

...