Однако это не полный и четкий ответ, я оставляю вам по крайней мере какой-то подход, с которым вы должны бороться. (Я был бы очень рад узнать, если у вас есть результаты).
Посмотрите на эти вопросы:
Удаление бликов с изображения
Как удалить блики и яркость изображения (предварительная обработка изображений)?
По сути, они пытаются решить ту же проблему.
Есть две части проблемы,
а. Идентификация пятна / пятна b. Замена пятна на то, что было бы в месте окклюзии.
Природа вопроса пытается решить точную проблему (в некотором смысле).
Это не тривиальная вещь. Тем не менее, в обоих вопросах есть уникальная схема, которую вы можете использовать.
Во всех случаях наложенный элемент, который требуется удалить, называется здесь (пятно, блики, яркое пятно), наложение имеет уникальный и отличный оттенок / цвет, который отличается от обычных объектов / сцены.
п[ х , у] = ( 1 - α [ x , y] ) ∗ S[ х , у] + α [ x , y] ∗ O v e r l a yЧАСты е
S~[ х , у] = ( P[ х , у] - О V е г л уЧАСu e ∗ α~[ х , у] ) / ( 1 - α~[ х , у] )
п[ х , у]S[ х , у]О V е г л уЧАСты еS~[ х , у]α~[ х , у]
Значение OverlayHue может быть независимо оценено путем ручного сегментирования областей пикселей, в которых явно преобладают пятна или вспышка.
S~р[ х , у] = ( Pр[ х , у] - О V е г л уЧАСты ер∗ α~[ х , у] ) / ( 1 - α~[ х , у] )
S~г[ х , у] = ( Pг[ х , у] - О V е г л уЧАСты ег∗ α~[ х , у] ) / ( 1 - α~[ х , у] )
S~В[ х , у] = ( PВ[ х , у] - О V е г л уЧАСты еВ∗ α~[ х , у] ) / ( 1 - α~[ х , у] )
αS~
αα
S~[ х , у]α~[ х , у]
Это может быть не идеальным решением, но может быть лучше, чем наиболее очевидное, чем отсечение на уровне пикселей или игра с насыщением и т. Д. Я искренне прошу вас попробовать это в своих целях и показать нам результаты (мой верстак в настоящее время в беспорядке, поэтому я не мог не делай этого!)
Надеюсь это поможет.