Что делает эта функция? Что-то делать с фиксированными значениями?

Я нашел эту функцию где-то, довольно давно. Я точно не знаю, что он делает. Я использую его для манипулирования выходным сигналом симплексного шума (со значениями серой шкалы от 0 до 255), но хотел бы лучше понять его.

int ExponentFilter(int value, int cover, double sharpness)
{
int c = value - (255 - cover);
if(c < 0)
c = 0;
return 255 - ((std::pow(sharpness,c)) * 255);
}

Я использую это как:

ExponentFilter(n,140,0.98f)

Где n — это мое значение от 0 до 255.

0

Решение

cover как «экранированный» сигнал от полного отключения. cover 140 означает, что 140 самых высоких (самых ярких) значений (116-255) могут привести к выходу> 0.

sharpness описывает, как быстро свет исчезает. 0,98 означает, что свет гаснет примерно вдвое быстрее, но эффект затухания не линейный, он уменьшается для более темных областей.

Я ожидал бы, что этот фильтр затемнит и обострит переэкспонированные изображения.

Exponentfilter — подходящее имя, так как функция резкости использует экспоненты (pow — функция экспоненты).

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]