【发布时间】:2020-04-22 23:23:01
【问题描述】:
是否有用于增加灰度位图对比度的标准 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;
}
这是 the logistic function 应用于 0 和 1 之间的值,输出标准化,因此输出也在 [0...1] 中。这个函数是有效的,但它是完全任意的,我只是编造的,所以k 参数在图像处理文献等中没有正式的名称或含义。
如果有一个标准的功能,我会更喜欢它,但还没有找到任何似乎确定的功能。像as this link 这样的代码对我来说似乎是临时的。
【问题讨论】:
-
Anthony Thyssen 有一个很好的讨论和链接到这里 ImageMagick 使用的 sigmoidal contrast stretch 的论文...imagemagick.org/Usage/color_mods/#sigmoidal
-
感谢这正是我一直在寻找的东西
标签: image-processing contrast math-functions