2012-07-03 1 views
1

Я ищу быстрое представление/алгоритм, позволяющий мне найти квадраты (как метки) в файле изображения. Это не должно быть так много проблем, однако ...Признать шаблон в изображениях

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

Затем, имея массив «линий», я нахожу элементы, которые могут создать квадрат желания.

Лучше идея была бы найти образец с известными чертами, как: это квадрат, вне квадрата нет искажений (есть только белое пространство) и т.д.

Цель состоит в том, чтобы проанализировать изображение 5000 X 5000 пикселей менее чем за 1-2 секунды.

Возможно ли это?

+0

Добавление нескольких изображений, показывающих, чего вы пытаетесь достичь, и то, что вы пытались сделать, было бы очень полезно. – Chris

ответ

3

Один из образцов OpenCV squares.cpp делает именно это, см here для кода. В качестве альтернативы вы можете посмотреть преобразование Хафа, чтобы обнаружить все линии на вашем изображении, а затем проверить две линии, пересекающиеся под прямым углом.

Есть также большое количество ресурсов на этом сайте, которые могут помочь вам:

Я уверен, что есть и другие, они только первые несколько, с которыми я столкнулся.

+0

Спасибо, я попробую! – John

1

См. Преобразование признаков, инвариантное по шкале, соответствие шаблону и преобразование Хафа. Быстрая и неточная догадка может заключаться в том, чтобы сделать гистограмму цвета и сравнить ее. Если изображение достаточно сложное, вы можете различать несколько наборов изображений.

Чтобы сделать дело простым, предположим, что у нас есть три ковши для R, G и B. Полностью белое изображение будет иметь (100%, 100%, 100%) для (R, G, B). Полностью красное изображение будет (100%, 0%, 0%). У сложного изображения может быть что-то вроде (23%, 53%, 34%). Если вы берете расстояние между точками в этом (R, G, B) пространстве, вы можете сравнить, какой из них «ближе».

Я думаю ссылка Криса решается вопрос :)

+0

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