У вас есть два варианта, в зависимости от того, какие функции вы хотите обнаружить и что вы хотите сделать с видео.
- Игнорировать освещение изображений, потому что (как вы пришли к выводу) это содержитбесполезная или даже вводящая в заблуждение информация для обнаружения вашей функции.
- Попробуйте исправить неравномерность освещения (именно это вы и просите).
1) Это довольно легко сделать: преобразоватьизображение в цветовом пространстве , которое выделяет освещение в отдельном канале, например: HSV (игнорировать канал V) Lab (игнорировать L) YUV (игнорируйте Y) и выполните обнаружение функции на двух оставшихся каналах.Из них HSV является лучшим (как отметил Ив Дауст в комментариях), YUV и Lab оставляют некоторую информацию о освещении в каналах UV / ab.По моему опыту последние два также работают в зависимости от вашей ситуации, но HSV лучше.
2) Сложнее.Я бы начал с преобразования изображения в HSV.Затем вы делаете репарацию только для V-канала:
- Примените Гауссово размытие к изображению V-канала с очень большим значением сигма.Это дает вам местное среднее значение для освещения.Вычислить среднее значение V для этого изображения (это одно число).Затем вычтите локальное среднее значение из фактического значения V для каждого пикселя и добавьте глобальное среднее.Вы сейчас сделали очень грубое выравнивание освещения.Вы можете немного поиграться со значением для sigma, чтобы найти значение, которое работает лучше всего.
- Если это не удастся, посмотрите параметры , которые дает zenopy в своем ответе.
Какой бы метод вы ни выбрали, я советую вам сконцентрироваться на том, что вы хотите сделать (например, определить функции), и выбрать промежуточные шаги, такие как этот, который подходит для ваших нужд.Так что быстро попробуйте что-нибудь, посмотрите, как это помогает обнаружению вашей функции,