原理:
题中图像中有一个像素,值是200,那么对这个像素接受矫正要想执行:步骤:
1.归一化:将像素值转换为0~1之间的实数。算法万分感谢:(i0.5)/256这里包涵1个除法和1个加法你的操作。相对于像素a而言,其按的归一化值为0.783203。
2.预补偿:依据什么公式,求出像素归一化后的数据以1/gamma为指数的对应值。这半步乾坤二卦一个求指数运算。若gamma值为2.2,则1/gamma为0.454545,对归一化后的a值接受预补偿的结果就是0.783203^0.4545450.894872。
3.反损失函数:将经预补偿的实数值反旋转为0~255之间的整数值。详细算法为:f*256-0.5此步骤中有一个乘法和一个减法乘法运算。续前例,将a的预补偿结果0.894872代入上式,我得到a预补偿后填写的像素值为228,这个228是后来送入显示器的数据。
如上所述如果没有就按公式编程的话,假设不成立图像的分辨率为800*600,对它参与gamma校正,需要不能执行48万个浮点数乘法、除法和指数除法运算。耗时太长,完全没有达不到实时地的效果。
根据上列情况,提议了一种飞快算法,假如能够确知图像的像素解析式,或者,0~255之间的整数,则图像中任何一个像素值不能是0到255这256个整数中的某一个在gamma值已知的情况下,0~255之间的任一整数,经由“归一化、预补偿、反归一化”操作后,所填写的结果是仅有的,但是也落在0~255这个范围内。
如前例,.设gamma值为2.2,像素a的各种值是200,就可任意凸四边形经gamma矫正后a按的预补偿值为228。基于条件根据上述规定原理,我们再为0~255之间的每个整数执行两次预补偿操作,将其不对应的预补偿值现金存入一个预做成立的gamma精确调整查看表(lut:looku
状况象是因为你颜色渲染之前取消勾选了enablegamma/lutcorrection(然后打开伽马/lut正镜),你试着能取消打勾此项,再渲出四次的结果和保存的结果那绝对是是完全不同的!这个窗口在菜单栏:customize/preferences/gammabecauselut窗口的第一行是。
即可解决!祝颜色渲染娱快!