是否有用于增加灰度位图对比度的标准 sigmoidal 函数?
目前我正在使用以下内容。这将应用于以 0 和 1 之间的值表示的灰度级。
static double ContrastCurve(double val, double k = 1)
{
Func<double,double> logistic_func = (double x) => 1.0 / (1.0 + Math.Exp(-k * (x - 0.5)));
var low = logistic_func(0);
var high = logistic_func(1);
var range = high - low;
var value = logistic_func(val);
return (value - low) / range;
}
这是应用于 0 和 1 之间的值的逻辑函数,输出归一化,因此输出也在 [0...1] 中。这个函数可以工作,但它是完全任意的,我只是编造的,所以这个k
参数在图像处理文献等中没有正式的名称或含义。
如果有一个标准的功能,我会更喜欢它,但还没有找到任何似乎确定的功能。像这个链接这样的代码对我来说似乎是临时的。