Лучшая производительность в условиях низкой освещенности (OpenCV)?

#c #video #opencv #light

#c #Видео #opencv #свет

Вопрос:

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

Я пришел к выводу, что это связано с более низкими условиями освещения.

Может кто-нибудь, пожалуйста, дать мне советы по повышению производительности в условиях низкой освещенности?

Мой алгоритм просто использует cvInRangeS для поиска пикселей цвета кожи в изображении HSV.

Подойдет любой совет, независимо от того, насколько мало он поможет.

Спасибо

Ответ №1:

Вы сначала нормализовали ввод? Какое среднее V значение днем и ночью? Тем не менее, ваш датчик будет RGB, а преобразование из RGB в HSV теряет довольно много точности в компонентах H и S, когда R, G и B низкие. В экстремумах: {0,1,0} довольно близко к {1,0,0}, но оттенок совершенно другой.

Комментарии:

1. Что такое нормализация ввода? Не могли бы вы подробнее остановиться на этом? Поскольку я понятия не имею, что это такое или как это реализовать, а также я понимаю, что преобразование теряет точность, но моему алгоритму для работы требуется изображение HSV. Так что использование RGB не вариант.

2. @Farhad Yusufali : Видишь en.wikipedia.org/wiki/Normalization_ (обработка изображений)

Ответ №2:

cv::equalizeHist — это, вероятно, то, что вам нужно для нормализации / выравнивания. Что касается подбора цвета — вы удаляете V-компонент вашего изображения, чтобы правильно подобрать цвет? Вы также можете попробовать YCbCr, который, как было показано, даже лучше, чем HSV, с точки зрения разницы в освещенности.