我正在制作一个图像编辑器,它应该能够更改图像的亮度或对比度。 我环顾四周,想出了3种改变亮度的方法,效果很好,但是与Photoshop相比,它们的图像在更高亮度下看起来要好得多。 Iam试图弄清楚他们是如何做到的。我已经验证了进入和退出程序的图像在亮度调整以外的其他地方没有被修改。 图片为线性RGB。
这是在photoshop中变亮的参考图像。
这是我使用此简单方法调整的同一输入图像: 输出=输入*(1+亮度),其中亮度为0-2浮动输入
如您所见,星星发光刚好位于顶部。周围有一个可见的环,周围的颜色比黄色/橙色的混合要多红色。
环顾四周后,我偶然发现了以下线程:Algorithm to modify brightness for RGB image?
XenoRos响应建议使用HSP颜色空间。我尝试了一下他的代码,但是对我来说不起作用,所以我将链接(link in XenoRos response)中的C代码转换为C#(Iam使用c#)并进行了尝试。结果如下:
将P值乘以亮度输入后即可。
对我来说,与第一次尝试几乎一样。我还在该网站上尝试了不同的感知亮度常数值,但看起来几乎一样。 请忽略photoshop图像的高分辨率,我正在对其进行下采样,但是没有颜色压缩。
我将如何改进呢?感谢您的任何建议。