Удаление бликов с изображения

17

Отказ от ответственности: я никоим образом не занимаюсь обработкой сигналов. Просто очень любопытно ...

Вопрос очень прост: возможно ли применить программную обработку к изображению, чтобы убрать или уменьшить блики фар?

Это была бы такая картина:
http://www.driversedguru.com/wp-content/gallery/jamie-gallery/Lots%20of%20Glare.jpg

Если это возможно, есть ли библиотека программного обеспечения для этого? Мне все равно, на каком языке, я просто хочу возможности. Слэш кто-нибудь знает, есть ли текущие исследования по этому вопросу?

BenCole
источник
3
Это «блики» или «блики»?
эндолит
Хорошая точка зрения. Я должен уточнить: меня интересует нормализация уровня освещенности по всему изображению (хотя конкретно по автомобилям). Таким образом, уменьшите яркость пятна / размытие фар и увеличьте видимость самих автомобилей. Итак ... блики или блики в любом случае (я думаю).
BenCole
Ну, есть способы действительно удалить такие вещи, с помощью деконволюции, я думаю, вместо того, чтобы просто уменьшить их яркость, но я не уверен
endolith
Я представляю что-то вроде этого: ftp.cfar.umd.edu/pub/aagrawal/Glare/AgrawalGlareLowRes.pdf за исключением того, что он немного более продвинут в том, что он (1) уменьшает блики, используя аналогичные методы, описанные в этой статье; затем (2) удаляет фактический источник света с картинки; и (3) [нечетко об этом шаге] снова уменьшает блики и увеличивает площадь вокруг источника света.
BenCole
Ну, этот пример требует изменения оптики камеры перед съемкой, кажется
endolith

Ответы:

6

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

Поэтому, даже если вы уберете блики, а затем попытаетесь выровнять остальную часть изображения по уровню, это будет очень шумно. Например, если вы возьмете свое изображение и поиграете с уровнями, чтобы подтянуть более темные участки, и просто дадите блику обрезаться, это результат:

"Яркая" версия

Если это нормально для дальнейшей обработки (я не знаю, что вы имеете в виду), то вы могли бы, возможно, убрать блики, глядя на распределения насыщенных пикселей, и расширить их до «свечения».

Лучшим решением (если у вас есть такая возможность) может быть использование камеры с высоким динамическим диапазоном, которая имеет нелинейный отклик в пикселях, а также часто 10 или 12 бит на пиксель используемого разрешения, что означает, что вы можете сохранить 7 -8 бит для темных участков.

Мартин Томпсон
источник
Справедливо. Вы дали мне хорошее направление, так что спасибо!
BenCole
Вам не нужна камера с большим динамическим диапазоном. Вам просто нужно сделать несколько снимков с разными уровнями экспозиции. Камеры Canon могут быть настроены для этого автоматически с помощью прошивки CHDK. chdk.wikia.com/wiki/Samples:_HDR
эндолиты
2
@endolith - Да, вам не нужна камера HDR ... если ваша сцена меняется достаточно медленно, вы можете сделать это программно. Но из-за картинки выше, я бы усомнился в этом - я использую системы автомобильного зрения, а 30 Гц едва хватает, я бы не хотел ждать нескольких кадров, чтобы получить данные!
Мартин Томпсон
1
Не могли бы вы сделать обновление изображений CHDK? Вместо того , чтобы ждать в течение нескольких дискретных кадров, имеют диапазоны , как: {frame1,2,3,4}, {frame2,3,4,5}, {frame3,4,5,6}, etc? Или это будет слишком медленно?
BenCole
@BenCole: да, это иногда выполнимо, но в некоторых приложениях даже один дополнительный кадр задержки будет слишком большим. Фактически, смена сцены с одного кадра на другой означала бы, что «HDR путем наложения нескольких кадров» не сработает слишком хорошо
Мартин Томпсон,