Корректировка изображения для локальных темных/светлых пятен, выравнивание яркости/интенсивности (локально по местоположению, а не по темным/средним/светлым областям)

Итак, у меня есть изображение с некоторыми темными пятнами, и они выглядят довольно просто, поэтому я думаю, что могу создать карту яркости, инвертировать ее, а затем применить к моему изображению, чтобы убрать темные пятна. Однако все, что я могу найти, это два метода выравнивания: выравнивание всего изображения (с гистограммой) или сегментирование изображения в темных средних и светлых частях и выравнивание того, что вы хотите. Первый подход не помогает моей проблеме, а второй подход также делает темные объекты на изображении светлее. Я уверен, что есть простой способ сделать это (давно я видел, как кто-то делал это в презентации), хотя я еще не смог найти или придумать его.

Итак, мой вопрос: как мне создать «карту яркости» такого изображения:

Лена замечена

Получаю вот такую ​​карту:

lena luminance

Который я могу применить обратно, чтобы получить лучшее изображение, подобное этому:

Лена Леккер

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

В основном я использую Matlab и имею некоторые ограниченные знания в области python и математики, но пример Matlab был бы для меня наиболее полезным. Один из способов, которым я думал о себе, это взять fft2 и обнулить низкие частоты, но это просто уничтожит весь контраст, а не только те части, которые я хочу.

Подобные, но разные вопросы SO, которые мне не помогли:

Выравнивание изображения

пороговое значение изображения на основе градиента

Гистограмма изображения

Matlab — локальное выравнивание гистограммы

Как узнать светлый, средний и темный цвет?


person Leo    schedule 26.09.2013    source источник
comment
Я нашел аналогичный вопрос с очень хорошими ответами здесь: stackoverflow.com/questions/17914074/   -  person Leo    schedule 27.11.2013


Ответы (1)


Вам нужно будет очень точно смоделировать характер темных пятен, чтобы этот процесс работал. Можете ли вы охарактеризовать, является ли темный градиент линейной, экспоненциальной, степенной, тригонометрической или какой-либо другой предсказуемой функцией? Всегда ли она точно круглая?

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

person Sparr    schedule 26.09.2013
comment
Что ж, давайте начнем с линейного и точно кругового или прямого градиента, который уже значительно улучшит мое изображение. Здесь нет прямых линий, а есть непрерывные структуры, которые должны иметь примерно одинаковую интенсивность внутри и снаружи пятен. - person Leo; 26.09.2013
comment
Итак, представьте, что ваша фотография — это 3D-карта высот. на этом изображении линейный круговой градиент представляет собой конус, а линейный прямой градиент представляет собой постоянный наклон. выберите на изображении некоторые постоянные черты и отметьте, как они меняются в пятнах. разница в том, где находятся эти метки (ниже в трехмерном пространстве, чем они должны быть, если темный = низкий) и где они должны быть, предоставит выборочные точки на поверхности конуса или наклона, которые вы пытаетесь вычислить. Наклон (плоскость) можно рассчитать по трем точкам на его поверхности. Я думаю, что конус занимает четыре, но я могу ошибаться. - person Sparr; 27.09.2013
comment
Теперь я понимаю, почему точная модель моих темных пятен так важна. Спасибо, это полезный ответ. Если не будет лучших ответов, я приму это. - person Leo; 27.09.2013