2010-05-24 2 views
5

Я хочу создать распознаватель листовой маркировки. Описание:Каков наилучший алгоритм поиска точки в файле изображения?

  1. В моей системе используется черно-белая цветовая гамма.
  2. Бумага для листовой бумаги имеет маленький черный прямоугольник на каждом углу и дополнительный маленький черный прямоугольник для определения ориентации рядом с одним из предыдущих прямоугольников.
  3. Бумага сканируется с получением изображения (например, в формате BMP).

Первый шаг - найти эти пять ссылок на изображении как можно более эффективно.

Моя основная идея - отслеживать строки за строкой и слева направо для каждой строки. Звучит очень медленно, я думаю.

Есть ли лучший способ сделать это?

Заранее спасибо.

С уважением,

Suugaku

+0

Обработка изображений не так проста, как соответствие текста. Это во многом зависит от изображения. Я могу дать вам несколько советов, если вы покажете изображение. Несмотря на то, что вы описали изображение, лучше смотреть на него. – claws

ответ

1

Вы можете начать поиск, где вы обычно ожидаете найти эталонные изображения. Вы можете сделать это, сохранив статистику о том, где они были раньше. В частности, если у вас есть два кадра, сделанные один за другим, вероятность того, что контрольные точки не сдвинется очень далеко.

После того, как вы нашли одну или несколько опорных точек, положение остальных сильно ограничено, поэтому вы можете сделать очень хорошее предположение о том, где другие должны лежать. Каждый раз, когда вы находите новый пункт, он дает больше подсказок о том, где могут быть остальные точки.

Итак, вы можете начать с немного догадок, чтобы быстро найти точки и вернуться к линейному сканированию, если это не удается.

0

Я как-то написал небольшую ручку OCR для клиента, который случайно напечатал &, отправил тонны (litteraly) счетов-фактур - и не отслеживал, какие счета-фактуры они уже отправили или нет, - к счастью, все счета-фактуры были отсканированы и могут быть отслежены через OCR hack я написал :). Хватит хвастаться ...

Скорость не является проблемой, если вы используете метод экземпляра BitMap.LockBits() (http://www.bobpowell.net/lockingbits.htm). Тогда вам нужно всего пару часов.

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