Я понимаю, что это не совсем то, что здесь задают, но название вопроса может привести к тому, что другие, как и я, придут сюда в поисках способа (неразрушающего) увеличения контраста в изображении даже послеон нормализован - аналогично тому, что можно сделать с функцией кривых в Photoshop, установив для нее сигмоид форму:
Простой способчтобы сделать это (предполагая, что у нас есть изображение, нормализованное в диапазоне [0,1]
, например, после прохождения его через функцию mat2gray
MATLAB), нужно использовать функцию косинуса.Вот как: сначала мы отражаем косинусную кривую так, чтобы ее самая низкая точка была на нуле, а самая высокая - на π, а не наоборот;затем мы масштабируем входное значение на π, так что самая высокая точка возникает, когда входное значение имеет максимальное значение, 1;и, наконец, мы нормализуем результат до выходного диапазона [0,1]
(из оригинала косинуса [-1,1]
), добавив 1 и разделив на 2. В результате получается простая формула ниже:
img_contrast = ( -cos( pi * mat2gray( img_original ) ) + 1 ) / 2;
Надеюсь, что это поможет!