Обработка изображений: слитые изображения выдержки размыты
Я пытаюсь воспроизвести T. Mertens' et. и др. статья [ 1 ], в которой авторы представляют метод слияния нескольких изображений, снятых с разными экспозициями камеры, в "лучшее" изображение. Существует также демонстрационный код Matlab, доступный для статьи [ 2 ]. Этот метод очень прост: вы вычисляете карту веса пикселей для каждого пикселя, а затем изображения объединяются с использованием карт весов и подхода смешивания пирамиды Лапласа / Гаусса для предотвращения артефактов смешивания.
Я в основном перенес код Matlab на C++, но полученные изображения выглядят размытыми по сравнению с реализацией Matlab (images: http://imageshack.us/photo/my-images/204/exposuresample.jpg/).
Я уже сравнил разные шаги в процессе обработки моего порта C++, но, похоже, все в порядке. Кажется, что-то не так с моей обработкой пирамиды.
Есть ли у кого-то с фоном обработки изображений предложение или идея, что может привести к размытому результату?
С Уважением,
[ 1 ] http://research.edm.uhasselt.be/~tmertens/exposure_fusion/[2] http: //research.edm.uhasselt.be/%7Etmertens/exposure_fusion/exposure_fusion.zip
1 ответ
Похоже, что второе изображение либо смещено на некоторую постоянную, что делает его более ярким и насыщенным на очень ярких участках, либо умножается на постоянную, вызывая насыщение в некоторых областях. Вы можете проверить это, проверив значение в несколько пикселей, которое вы считаете черным. Если ожидаемый черный действительно черный, то он мультипликативный. Я не могу разобрать это на изображении, которое вы прикрепляете.
Хотя моя ставка будет на первый случай.
Чтобы отладить это, я бы проверил по всему алгоритму, приводит ли любая пиксельная операция к более чем 255 (или 1, в зависимости от того, работаете ли вы с двойными или целыми числами) и работаете оттуда. Или для быстрого и грязного решения, проверьте, если вы можете исправить окончательное изображение, вычитая значение или деление на небольшое значение (1,3 или что-то)