вернуться в оглавление предыдущая глава предыдущий параграф следующий параграф следующая глава


Соляризация

Рис. 1. Функции препарирования типа соляризация

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

void Solarize(IplImage* img, IplLUT* lut)
{
// Построение гистограммы для нахождения максимумов
    iplComputeHisto(img, plut);

// Определение максимальной интенсивности
    int mx = 255;
    while(!lut->value[mx])
        mx--;

// Подготовка lookup-таблицы к соляризации
    lut->interpolateType = IPL_LUT_LOOKUP; // режим интерполяции
    lut->num = 257; // количество ключевых значений

    for(int i = 0; i < 257; ++i)
    {
        lut->key[i] = i;
        lut->factor[i] = 0; // наклон
        lut->value[i] = 4 * int(i - i * i / (double)mx); // величина сдвига
    }
    
     lut->key[i] = i;
}