我想用c语言实现gimp的level函数。 用什么方程来实现gimp的输入级函数?
我只是认为原始图像的值范围在0到255之间。 但如果我从0~255调整输入电平0~206。那我可以这样做吗?
调整后的像素=输入像素/ 255 * 206?
但我认为这没有意义,因为输出范围比以前更暗。在我调整输入电平之前,输出图像如何变得更亮?
答案 0 :(得分:1)
易于实验。使用256px宽的画布创建图像。在它上面创建一个黑到白色的RGB渐变。通过指针对话框(Windows>Dockable dialog>Pointer
),可以轻松检查具有水平坐标x
的像素是否也具有R=G=B=x
(具有微小变化)。
现在应用“级别”工具。如果将白点设置为192(255 * 3/4),则可以检查x
处的像素现在是否为R=G=B=(x*4)/3
(这表明该函数是线性的)。在“级别”工具中,您还可以点击Edit these settings at Curves
进入“曲线”工具。你会看到相应的曲线实际上是一条直线。
PS:中间手柄是" gamma"。在实验上,你把它放在输入值将是黑点和白点的平均值的地方。