Перейти к содержимому
Compvision.ru
phpInsIDE

Выделение красной линии лазера на объекте

Recommended Posts

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

Имеется объект с проецированной на него через проектор красной линией . Вопрос состоит в следующем: как выделить на фоне всего остального спроецированный псевдолуч и как получить координаты каждой его точки (усреднить информацию о каждом пикселе)?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

самое простое - из красного канала вычесть другой. после подбора коэффициентов останется яркая полоса(на месте красных точек). Дальше пороговое преобразование.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

самое простое - из красного канала вычесть другой. после подбора коэффициентов останется яркая полоса(на месте красных точек). Дальше пороговое преобразование.

Это понятно. Спасибо большое. А что можно сделать дальше с полученной полосой, как усреднить, чтобы можно было манипулировать ею как совокупностью точек с координатами x и y? Ну то есть сейчас линия "в ширину" несколько пикселей, а хотелось бы уменьшить до одного так, чтобы информация о рельефе объекта сохранилась (может, усреднением или чем-то подобным)..

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Если линия будет вертикальной или не сильно наклонной, то можно найти средний пиксель в каждой строке и дальше работать с массивом пикселей.

Можно пойти дальше и использовать скелетизацию(тема где-то была с примером руки).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Также хотелось бы узнать мнение товарища Smorodov, если несложно, конечно ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вот тут посмотрите: http://www.compvision.ru/forum/index.php?showtopic=198&st=0&p=790&hl=%D1%81%D0%BA%D0%B0%D0%BD%D0%BD%D0%B5%D1%80&fromsearch=1&#entry790

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

А зачем нужно разбивать линию на куски?

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

Я работаю над трехмерным сканером и буду обрабатывать каждое изображение видео потока, поэтому этот вариант, как мне кажется, не подойдет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте учётную запись или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!

Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×