【发布时间】:2013-04-22 08:13:13
【问题描述】:
我正在尝试调整图像的亮度和对比度。我查看了wiki article 用于将 RGB 转换为 HSL/HSV 然后调整和转换回来,但这会产生非常奇怪的输出。所以现在我正在查看other examples,它似乎工作正常。唯一的问题是如何同时调整亮度和对比度?
假设我的 RGB 为 100 100 100,然后我想将亮度调整为两倍,对比度为一半……2 和 0.5。我该怎么办?根据第二个链接,我会将 100 添加到所有 RGB 值的亮度,然后将这些新的 RGB 值插入到对比度公式中?
有人有什么想法吗?
P.S - 这是在 C 中使用 SDL 和原始 RGB 值。
【问题讨论】:
-
奇怪的输出是什么意思?
-
由于某种原因,颜色确实不正常,可能是因为我使用的是 8 位颜色 (Uint8)。
-
这应该是正常的,但我想你应该使用浮点数进行转换,因为那里有一些计算,我希望有一些除法吧?
-
是的,我在转换时使用双精度,然后在返回 RGB 时返回。
-
那么应该没问题,但是维基百科说在这个模型中存在问题,比如改变颜色会使图像看起来更亮或更暗......