用什么方程来实现c中gimp的输入电平功能?

What equation used to implement the input level function of gimp in c?

想用c语言实现gimp的level功能等。 gimp的输入电平函数用什么方程来实现?

我只是觉得原图的取值范围在0~255之间。 但如果我确实将输入电平从 0~255 调整为 0~206。那我可以这样做吗?

调整像素 = 输入像素 /255 * 206 ?

但我认为这没有意义,因为输出范围比以前更暗。当我调整输入电平时,输出图像如何变得比以前更亮?

易于实验。创建一个 256 像素宽的图像 canvas。在其上创建 Black-to-white RGB 渐变。使用指针对话框 (Windows>Dockable dialog>Pointer),很容易检查水平坐标为 x 的像素是否也有 R=G=B=x(略有变化)。

现在应用色阶工具。如果将白点设置为 192 (255*3/4),则可以检查 x 处的像素现在是否具有 R=G=B=(x*4)/3(这表明该函数是线性的)。在 Levels 工具中,您还可以点击 Edit these settings at Curves 进入 Curves 工具。你会看到对应的曲线实际上是一条直线。

PS:中间的句柄是"gamma"。实验上,你把它放在输入值将是黑色和白色点的平均值的地方。