2012-04-17 10 views
4

Я планирую обнаруживать конечные точки линий, генерируемых символами (OCR) в C#. Я хочу что-то вроде этого:Обнаружение конечных точек линии

enter image description here

Что я имею в виду «конечной точки», я хочу, чтобы концы любых линий в характерах ... например, «C» имеет две конечные точки (по одному верхний и нижний), как видно на приведенном выше изображении, представленном в виде красного пикселя. Я могу извлечь одиночные строки из «более толстых» существующих отсканированных символов, я могу выполнить обнаружение границ, а также анализ заливки наводнения, но я не могу воспроизвести вышеизложенное! Любые указатели на статьи или существующий код будут высоко оценены! Любые примеры кода будут хорошими, поскольку я могу легко преобразовать C++ или любой язык .NET в C#.

Спасибо, Джош

ответ

1

Поскольку у вас нет определения «конечной точки» все же, я предлагаю:

  • черной точкой является конечной точкой IIF всех соседей (т.е. черных точек с Манхэттен расстоянием < = 3) лежат в секторе менее 45 градусов.

Найти угол для каждой соседней черной точки не должно быть слишком сложным. Сортировка этих углов и поиск диапазона также не сложны, хотя вам нужно быть осторожным с разрывом (где угол внезапно изменяется на 360 градусов). Это может быть немного быстрее, чтобы отсортировать по склону без фактического расчета угла. Дополнительное ускорение может быть достигнуто с помощью логики с быстрым выходом.

+0

Хорошо, я уточню вопрос с определением. В основном то, что я хочу получить, это концы любых строк ... например, «C» имеет две конечные точки (одну сверху и одну внизу), как видно на приведенном выше изображении, представленном в виде красного пикселя. Я также думал о сканировании всей строки (потому что у меня есть пиксели, которые являются черными уже потому, что я использовал заливку заливки для выделения символов из PNG, а затем использовал линию, истощающую алгоритм, чтобы уменьшить ее до одной строки) и поиск черного пикселя, окруженного только ОДНОМ другим черным пикселем (во всех направлениях, включая диагонали). – jduncanator

+0

@jduncanator: Это определение не является настолько техническим, чтобы фактически использовать его. Кроме того, конечная точка может легко иметь двух черных соседей, расположенных на одной стороне. –

Смежные вопросы