Итак, я думаю, что вы задаете два вопроса.
1:
И что я хочу, это:
- На изображении с переэкспонированием яркость должна уменьшиться, а
- Изображение, которое имеет недостаточную экспозицию, яркость должна быть увеличена.
Я полагаю, что вы ищете что-то вроде выравнивания гистограммы .
Если вы построите гистограммы этих трех изображений, они будут выглядеть примерно так:
Как видите,
распределение недоэкспонированной гистограммы более сконцентрировано в нижних бинах, roughly [0 ~ 55]
.
распределение переэкспонированной гистограммы более сконцентрировано в верхних бинах, roughly [55 ~ 225]
.
распределение вашей 'стандартной' гистограммы более сконцентрировано в промежуточных ячейках, roughly [15 ~ 145]
.
То, что вы хотите сделать, это распределить гистограммы более равномерно по всем ячейкам. Вы можете попытаться придумать небольшой собственный алгоритм или использовать встроенную функцию MATLAB adapthisteq()
, как описано здесь , как ее использовать. Играя с различными параметрами, вы можете получить распределение гистограммы, которое даст вам наилучший вывод изображения. По умолчанию функция adapthisteq
пытается распределить гистограмму по всем 256 ячейкам.
2:
Вопрос в том, «как установить, чтобы все изображения имели экспозицию / яркость, такие же, как у стандартного изображения?»
Если вы просто хотите, чтобы гистограммы двух других изображений выглядели как ваше 'стандартное' изображение, для этого вы можете использовать функцию imhistmatchn
, как объяснено здесь . честно говоря, у меня самого небольшой опыт работы с этой функцией, но вы можете попробовать ее.