Как найти количество пикселей, на которое переместилось изображение? - PullRequest
3 голосов
/ 04 августа 2010

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

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

Шаблон http://i36.tinypic.com/10cq49d.jpg

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

Задача http://i35.tinypic.com/xptfr.jpg

Мой вопрос заключается в том, как с помощью библиотеки C # распознавания изображений, предпочтительно EmguCV, как вычислить размеры зеленого прямоугольника (смещение)? Я следовал нескольким учебникам Эмгу, и благодаря хитрым преобразованиям программа способна обнаруживать только две линии, но я не знаю, как добраться, где они пересекаются, поскольку библиотека создает более 500 мини-линий вместо 2 длинных.

Любая помощь, идеи и предложения приветствуются. Спасибо!

Ответы [ 2 ]

2 голосов
/ 04 августа 2010

В качестве примечания: если вы делаете много пиксельных твидлингов, вы можете серьезно подумать об использовании атрибута «unsafe» - это остановит во время выполнения проверку каждого подписанного доступа к массиву пикселей, который вернет вас к исходному диапазону производительности - иначе ваши algs будут работать очень медленно: www.wllllllyyyyyy: -)

0 голосов
/ 04 августа 2010

Вы захотите изучить алгоритмы «отслеживания изображений», например, алгоритм среднего смещения: http://en.wikipedia.org/wiki/Mean-shift.

...