Я работаю над проектом сшивания изображений и понимаю, что существуют разные подходы к работе с контрастностью и яркостью изображения. Я мог бы, конечно, разобраться с этой проблемой еще до того, как сшил образ, но все же результат не такой последовательный, как хотелось бы. Итак, мой вопрос: возможно ли случайно «сбалансировать» или, скорее, «выровнять» контрастность и яркость цветных изображений после сшивки?
Баланс контрастности и яркости между совмещенными изображениями
Ответы (2)
Вы хотите определить функцию выравнивания гистограммы не по всем изображениям, а по той зоне, где они будут соприкасаться или перекрываться. Вы, очевидно, хотите иметь идентичные гистограммы в области перекрытия, поэтому здесь вы вычисляете функции. Затем вы применяете функции выравнивания, которые выполняют это на всех изображениях. Если у вас более двух стежков, вы все равно хотите заранее выполнить глобальное выравнивание, а затем использовать взвешенное применение функций выравнивания перекрытия, которое уменьшает влияние по мере удаления от сшитого края.
Извините, если это уже очевидно для вас, но ваш общий вопрос приводит меня к общему ответу.
Вы можете взглянуть на класс компенсатора экспозиции, предоставленный OpenCV.
Компенсация экспозиции выполняется в 3 этапа:
Создайте свой компенсатор экспозиции
Ptr<ExposureCompensator> compensator = ExposureCompensator::createDefault(expos_comp_type);
Вы вводите все свои изображения вместе с верхними левыми углами каждого из них. Вы можете оставить маски полностью белыми по умолчанию, если вы не хотите указать определенные части изображения для работы.
compensator->feed(corners, images, masks);
Теперь у него есть вся информация о том, как изображения перекрываются, вы можете компенсировать каждое изображение по отдельности.
compensator->apply(image_index, corners[image_index], image, mask);
Компенсированное изображение будет сохранено в image
stitching_detailed.cpp
из примеров проектов cpp.
- person Sergio Basurco; 09.10.2013