0

В настоящее время я работаю над проектом хобби для робота. Перед камерой я поставлю 2 источника света и компьютерное зрение Я хочу обнаружить источники света и разместить перед ним машину-робот.opencv обнаруживает световую частоту

С Python и OpenCV на малине Pi 3 у меня есть следующие рабочие: Я использую 2 источника красного света. Используя следующие функции OpenCV: cvtColor (frame to HSV), inRange (красный фильтр), findContours (найти 2 источника света), Moments (получить координаты x, y источников света), вычислить расстояние от источников света по сравнению с край рамки и создать направление, в котором автомобиль должен двигаться.

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

У меня есть 2 идеи, чтобы исправить это: - используя частоту, чтобы источники света мигали друг от друга. допустим, LEFT (1, 0, 1) и RIGHT (0, 1, 0). Возможно, я не могу использовать потоки, так как мне нужен «каждый кадр». - с использованием 1 красного и 1 зеленого источника света. Для этого я должен добавить отдельные функции для определения зеленого цвета, что означает большую вычислительную мощность.

Я боюсь выбрать лучший вариант, так как я неопытен в этой области. Есть ли у вас какие-либо советы? Или какая идея лучше?

+0

Я не понимаю, какая частота используется, чтобы источники света мигали друг от друга. допустим, LEFT (1, 0, 1) и RIGHT (0, 1, 0) _ Можете ли вы объяснить? – LBerger

+0

@LBerger: использование одного второго временного кадра означает 3 кадра в секунду. Левый (1,0,1) будет равен 0,33 с, а затем 0,33 с, а затем 0,33 с. Также можно использовать временные рамки 0,5 с. Это означает, что включено 0,677 с, 0,177 с, 0,167 секунды. – HieiFCB

ответ

0

Это не полный ответ, но я надеюсь, что это поможет вам.

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