Подтвердить что ты не робот

Как найти метки выравнивания в изображении

Я проектирую систему, которая будет сканировать в стандартизированных формах изображения (например, TBitmap). Я хотел бы определить метки выравнивания на этих страницах и использовать расположение этих меток для обрезки, чтобы повернуть страницу в правильной ориентации (чтобы верх был вверху) и обрезать изображение до положения меток совмещения.

Пример изображения типичного знака, который мне нужно найти:

Crop mark
(источник: tpub.com)

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

4b9b3361

Ответ 1

Просто мозговой штурм некоторых возможных подходов.

Соответствие шаблонов

Метод грубой силы должен иметь растровое изображение того, как должен выглядеть регистрационный знак. Затем для каждого возможного прямоугольника в изображении, который имеет ту же ширину и высоту, что и растровое изображение шаблона, вы сравниваете пиксели изображения с пикселями шаблона. Если большинство соответствующих пикселей совпадают, вы, вероятно, обнаружили регистрационный знак. Это очень интенсивное вычисление, потому что вы должны сканировать все возможные позиции, вращения, масштабные коэффициенты и т.д. Вы можете уничтожить это, воспользовавшись тем, что знаете. Например, ваш регистрационный знак симметричен, поэтому вам не нужно проверять все возможные вращения. Возможно, вы знаете точный размер метки и, следовательно, можете избежать повторения по различным масштабным факторам. Наконец, вы можете знать, что регистрационные знаки должны быть близки к углам и, таким образом, могут пропускать большую часть середины изображения.

Интересные точки

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

Обнаружение функций

Существуют алгоритмы обнаружения линии, обнаружения круга и т.д. Возможно, вы сможете запустить их, а затем искать комбинацию из двух сегментов пересекающихся линий внутри круга. Это может быть самым надежным способом, но, вероятно, также труднее всего работать.

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

Ответ 2

Я нашел этот французский ресурс PDF Colin BOUVRY с Распознавание символов и символов, вытравленных на стекле.

Если вам неудобно пользоваться французским языком, вам не нужно беспокоиться: куча ценных исходных кодов в Delphi указана в нижней части документа, поверьте мне!

Спасибо.

Ответ 3

Для отмеченной выше метки вы можете использовать Hough transform для кругов и линий, а затем проверить, находится ли какая-либо перекрестная линия в центре любого круга, тогда это ваш знак. Я не уверен в delphi, но алгоритм преобразования Hough хорошо известен и реализован в большом количестве libs.