Определить центр лазерной линии с точностью до субпикселя

Я занимаюсь разработкой простого «лазерного линейного» сканера с использованием C ++ и OpenCV. Пока я могу обнаружить
центр лазерной линии с точностью до 1 пикселя, поэтому у меня есть отправная точка для возможной «субпиксельной» функции / алгоритма. (ширина лазерной линии составляет около 15-20 пикселей)

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

Если у кого-то есть предложения, я бы хотел их услышать.

Некоторая информация;

  • система: QT Framework, C ++, библиотека OpenCV

  • камера; Монохромный (без цвета), оснащен красным фильтром

  • Разрешение изображения; 2560 х 1920

  • Замечания: Только 1 изображение будет проанализировано для лазерной линии.

4

Решение

Есть два основных метода, которые я использовал с хорошими результатами:

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

  • Сложнее, но точнее, если частота кадров вашей камеры достаточно высока (или луч движется достаточно медленно): Curless’s анализ пространства-времени.

Поиск «субпиксельной лазерной подгонки» возвращает несколько более свежих результатов.

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

Также следует обратить внимание на фокусировку (и глубину резкости) — размытое изображение луча на поверхности объекта приведет к смещенному пику.

7

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]