我的内部循环包含一个计算,分析显示它存在问题。
想法是取一个灰度像素x(0 <= x <= 1),并“增加其对比度”。 我的要求相当宽松,仅如下:
- 对于x < 0.5,0 <= f(x) < x
- 对于x > 0.5,x < f(x) <= 1
- f(0) = 0
- f(x) = 1 - f(1 - x),即应该是“对称”的
- 最好,函数应该平滑。
因此,图表必须类似于这样:
。
我有两种实现方法(它们的结果不同,但都符合规范):
float cosContrastize(float i) {
return .5 - cos(x * pi) / 2;
}
float mulContrastize(float i) {
if (i < .5) return i * i * 2;
i = 1 - i;
return 1 - i * i * 2;
}
所以,我要求对这些实现之一进行微优化,或者使用您自己的原始、更快速的公式。也许你们中的某个人甚至可以调整位元 ;)