【问题标题】:RGB to HSV using colorsys使用 colorsys 将 RGB 转为 HSV
【发布时间】:2016-06-06 11:53:54
【问题描述】:

我正在尝试制作一个跟踪程序,它可以拍摄图像并显示具有指定颜色的对象所在的位置:

示例:https://imgur.com/a/8LR40

为此,我现在正在使用 RGB,但它很难使用,所以我想将其转换为色调,以便更容易使用。我正在尝试使用 colorsys,但在做了一些研究之后,我不知道它想要什么参数以及它给出了什么。我曾尝试使用 colorizer.org 进行匹配,但我得到了一些废话。

>>> import colorsys
>>> colorsys.rgb_to_hsv(45,201,18)
(0.3087431693989071, 0.9104477611940298, 201)

colorsys 的行为已经不像记录的那样,因为在https://docs.python.org/2/library/colorsys.html 它说输出始终是介于 0 和 1 之间的浮点数,但值是 201。这也是不可能的,因为在标准 HSV 中,值介于 0 和100.

我的问题是: colorsys 期望什么作为输入? 如何将输出转换为标准 HSV? (色调 = 0-360,饱和度 = 0-100,值 = 0-100)

【问题讨论】:

    标签: python rgb hsv


    【解决方案1】:

    所有这些色彩空间中的坐标都是浮点值。在 YIQ 空间中,Y 坐标介于 0 和 1 之间,但 I 和 Q 坐标可以是正数或负数。在所有其他空间中,坐标都在 0 到 1 之间。

    https://docs.python.org/3/library/colorsys.html

    您必须从 0 - 255 缩放到 0 - 1,或者将 RGB 值除以 255。如果使用 python 2,请确保不要进行地板除法。

    【讨论】:

    • 谢谢。地板部门是问题,因为我在树莓派(默认)上使用 python 2,我之前尝试过,但只得到 0.0 个答案。
    • @mateuszdrwal "默认值?",没有 python 2 是我的 默认 python 之类的东西,正如 PEP394 所说,python 预计在所有系统上都是 python 2 ("目前,所有发行版都应确保 python 引用与 python2 相同的目标"),使用python3 为首选 Python 3 版本。值得注意的是,Ubuntu 16.04 默认不再附带 python 2(您必须手动安装它),但 python 3 解释器仍然称为python3,如果您随后实际安装python-2.7,那么您将获得/usr/bin/python -> python2.7 也是如此。
    • @AnttiHaapala “默认”的情况是,如果我在我的 rpi 上创建一个 .py 文件,它将在 Python 2.7.9 的 IDLE 中打开,除非我另有说明
    猜你喜欢
    • 2014-04-09
    • 1970-01-01
    • 2011-06-01
    • 1970-01-01
    • 2011-01-24
    • 1970-01-01
    • 2010-12-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多