Инвариантное изображение освещенности

Я пытаюсь создать изображение с инвариантом освещения с openCV, как здесь: http://www.cvc.uab.es/adas/publications/alvarez_2008.pdf

Кто-нибудь знает, как можно создать это изображение из изображения логарифма журнала в OpenCV?

Ответ 1

+1 для ссылки на интересную статью.

Думаю, я бы построил функцию для преобразования в журнал, разделить каналы, повернуть на тету и проектировать на одну ось. Затем я бы построил функцию для измерения качества полученного инвариантного изображения. Тогда я бы настроил поиск по тете, чтобы оптимизировать качество. Это похоже на то, что делает Альварес.

Но сначала я бы изучил цветовое пространство Luv, это могло бы быть самым близким приближением к этой схеме, которая возможна без специальной узкополосной камеры. Проецируйте uv-пространство на вектор под углом theta и посмотрите, что произойдет.

Ответ 2

Насколько я понимаю две статьи, они исходят из ложной предпосылки и приходят к интересному методу получения 1D-информации об инвариантности освещения из 2D (например, uv из Luv, HS из HSV и т.д.).

Говорят, что инвариант освещенности, но они показывают способ получения информации о цветовой температуре от отношения логарифмов цветовых пар, например {log (R/G), log (B/G)}. Вы можете представить себе установку с лампой на диммере, и они отображают цветовые соотношения: тусклые огни, да, изменение освещенности, но также и цветовая температура T.

Не говоря уже о том, что свет - это не вся черная цветовая температура Ламберт. Как в мире этот метод может работать? Но их результаты выглядят хорошо.

Итак, по интересному методу: Maximum Entropy
Как и в ответе выше, проецируйте (log of) uv-пространство на вектор под углом theta. Какими должны быть тета? Найдите theta, чтобы максимизировать энтропию результата. То есть, чтобы получить максимальные пики в 1D результате. Похоже на автофокус.

Чтобы ответить на ваш вопрос, используйте calcHist в opencv. Конечно, после вычисления журнала.