У вас есть три варианта в зависимости от стабильности вашего фона и того, что вы хотите сделать с изображением.
Вы можете сделать свое изображение настолько темным, что вы можете видеть только лазерточка.Вы можете сделать это, закрыв диафрагму и / или уменьшив время затвора.Даже с дешевыми веб-камерами это обычно можно сделать в драйвере.Как только вы это сделаете, найти лазерную точку очень легко.Вы делаете изображение максимально темным, потому что обычно точка, в которой светит лазер, слишком яркая, чтобы камера могла ее уловить.Это означает (как вы уже видели), что вы не можете различить световую лазерную точку и другие световые объекты на изображении.Сделав его темнее, вы теперь можете сделать это.
Если у вас есть другое использование вашего изображения (показ его людям) и ваш фон стабилен, вы также можете использовать среднее из последних нескольких видеоизображений как "background ", а затем найдите место, где есть большая разница между этим фоном и самым новым изображением.Обычно на это указывает лазер (опять же, если ваш фон достаточно стабилен).
Наконец, если ваш фон нестабилен и вы не хотите, чтобы изображение было слишком темным, ваш последний вариант -ищите все пиксели, которые являются очень яркими и более яркими в красном канале, чем в зеленом и синем (если вы используете красный лазер).Эта система будет по-прежнему отвлекаться на белые пятна, но не так сильно, как просто нахождение ярких пикселей.Если центр пятна лазерного указателя действительно отображается ярко-белым независимо от цвета лазера, то этот метод позволит вам найти «кольца» вокруг этого яркого пятна (внешней части точки, где лазер не такой яркий, какон находится в центре, так что он отображается с фактическим цветом лазера на изображении).Затем вы можете использовать простые морфологические операции (вероятно, достаточно закрытие ), чтобы заполнить эти круги.