【问题标题】:How can I transform HSV to RGB?如何将 HSV 转换为 RGB?
【发布时间】:2017-05-18 13:18:15
【问题描述】:

您能帮我如何将 HSV 更改为 RGB 吗?

【问题讨论】:

  • 平均像素和滑块的 HSV,添加它们可能会给出超出范围的值。另外,发布一些代码。
  • 是的,我会写一些代码,但我需要一个算法我的代码应该做什么:(
  • 好的,看看here 或者here
  • :非常感谢,我试试看
  • 不幸的是,它不适用于我作为 QImage 的图像加载

标签: c++ qt


【解决方案1】:

您的意思是要在整个图像上将 HS 和 V 移动一个值?很简单,将滑块居中于 0 并允许色调从 -2PI 变为 2PI,并且 s 和 v 从 -1.0 变为 1.0。色调不能超出范围,它会包裹到 +/- PI 或您使用的任何约定。 S 和 V 被限制为 0 - 1,(如果使用字节而不是浮点数,则为 0 - 255)。

您将需要 HSVtoRGB 和 RGBtoHSV,这在网络上很容易获得。

【讨论】:

  • 请检查我的回答 :) 谢谢
【解决方案2】:

您的颜色对象可能具有 HSV 成员的设置器....

所以你需要定义 3 个滑块来播放 H、S 和 V 值..

记住:

  • Hue :颜色类型(红色、蓝色或黄色)范围从 0 到 360°

  • S饱和度:颜色的强度。 范围从 0 到 100%

  • Brightness(或Value):颜色的亮度。 范围从 0 到 100%


QImage myImage = ....
QColor myColor = myImage.pixelColor(...);
myColor.setHsv(....);

【讨论】:

  • 是的,我有 3 个滑块:H - 范围为 0-360 ,S - 范围为 0-100 ,V - 范围为 0-100
  • 但是接下来我应该怎么做呢?我从文件中加载图像为 QImage
  • QImage myImage = .... QColor myColor = myImage.pixelColor(...); myColor.setHsv(....);
  • 将 imagevar.pixel(pixx, pixy) 给出的 QRgb 值转换为 HSV,用滑块值对其进行平均,将这些值恢复为 QRgb 变量,使用 imagevar.setPixe(pixx,pixx, newQRgb)更改这些值。 编辑正如@ΦXocę웃Пepeúpaツ所说的那样
  • 请检查我的回答 :) 谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-06-03
  • 2011-01-24
  • 1970-01-01
  • 2010-09-26
  • 2010-12-14
  • 2020-11-13
  • 1970-01-01
相关资源
最近更新 更多