OpenCV обнаруживает мигающие огни - PullRequest
10 голосов
/ 16 января 2012

мой вопрос похож на этот: OpenCV: обнаружение мигающих огней в видеопотоке

У меня есть светодиод, и моя камера работает на скорости 30 кадров в секунду.В каждом кадре я хочу знать, включен ли свет.Как и в предыдущем вопросе, я также хочу получить местоположение этой точки.

Теперь мне интересно, как использовать openCV для этого экземпляра (я новичок).Было бы легко, если бы свет составлял всего один пиксель, но, учитывая значительный фоновый шум и размер светодиода, как я могу обнаружить самый большой источник света на изображении.Я должен предположить, что я не могу свободно установить экспозицию (на iPhone).

Я новичок в обработке изображений, так как бы я справился с этим?

Ответы [ 2 ]

6 голосов
/ 16 января 2012

если фон просто шумный, но не так сильно меняется, вы можете сделать вычитание:

у вас есть 2 кадра, и вы делаете Frame2-Frame1, тогда вы применяете порог (значениепороговое значение зависит от интенсивности светодиода, поэтому вы должны проверить его), и вы устанавливаете черный пиксели ниже порогового значения и белый пиксели выше порога.

это очень легко, если вы преобразуетеизображение в градациях серого.

должно быть в таком виде:

cvAbsDiff(img2, img1, img2);
cvThreshold(img2, img2, (double)threshold_value, 255 (if you are using an rgb image), CV_THRESH_BINARY);

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

1 голос
/ 14 февраля 2013

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

Мой вызов будет использовать функцию "inrange", если пиксель полностью яркий, то есть 255 или, скажем, выше 200, оставьте его, как есть, в противном случае просто сделайте его равным нулю ..... таким образом, вы получитетолько светодиодная часть ... фон исчез !!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...