Страница 1 из 1

Определение расстояния с помощью двух веб камер

Добавлено: 23 июл 2012, 14:30
Sergey Ivanov
В общем, идея такая, ставим две веб камеры на каком-то расстоянии между ними. Камеры могут поворачиваться вокруг вертикальной оси. Изначально оси обеих камер параллельны.
Ставим маркер на известном расстоянии от камер. На изображении от одной камеры маркер будет посередине, на пример, а на другой немного смещён. После поворачиваем камеры так, чтобы маркер на изображении первой камеры и второй "совместился". Зная на сколько повернулись камеры и расстояние между ними узнаём расстояние. Реально ли такое реализовать в плане поиска маркера и совпадения его (про поиск видел тему с лазерной указкой, стало быть, можно) ?

Re: Определение расстояния с помощью двух веб камер

Добавлено: 23 июл 2012, 14:45
IvanLis
В Vision вроде есть функции определения расстояния

если самому делать, то наверное лучше камеры разместить параллельно, а расстояние вычислять по размещению объекта на двух кадрах
чем ближе, тем расстояние между объектом с двух камер будет больше
при удалении объекта они на изображении будут приближаться
и не надо ничего крутить

Re: Определение расстояния с помощью двух веб камер

Добавлено: 23 июл 2012, 15:28
AndreyDmitriev
Крутить камеры действительно не надо. Смещение маркера на двух камерах однозначно даст нам расстояние до него. Ищите в интернете всё, что касается темы "Disparity Map" - это как раз то самое. Суть в том, что на основе двух изображений с камер строится третья картинка размером тем же что и исходные, а вот градациями серого кодируется расстояние до объектов. 0 - бесконечно удалённый объект, 255 - максимально приближенный. Получается что-то типа такого:
Изображение
На практике могу сказать лишь следующее - камеры должны быть хорошие, оси их должны быть строго параллельны (причём не только по горизонтали, но и по вертикали с субпиксельной точностью). Я программировал такое несколько лет назад - проще было застрелиться чем настроить. Ну а с дешёвыми веб камерами результат как правило - так себе. Впрочем если ограничиться единственным известным маркером, то может получиться и с веб камерами.
В библиотеке OpenCV, кстати, этот алгоритм реализован, но к лабвью я его пока не прикрутил.
Ещё как вариант - купить xbox kinect - он, по-моему, сразу карту глубины отдать может.