преобразовать значения RGB в эквивалентные значения HSV, используя python - PullRequest
4 голосов
/ 10 апреля 2010

Я хочу конвертировать значения RGB в HSV, используя python. Я получил несколько примеров кода, которые дали результат со значениями S и V больше 100. (пример: http://code.activestate.com/recipes/576554-covert-color-space-from-hsv-to-rgb-and-rgb-to-hsv/). кто-нибудь получил лучший код, который конвертирует RGB в HSV и наоборот

спасибо

Ответы [ 3 ]

13 голосов
/ 10 апреля 2010

Вы пытались использовать библиотеку colorsys ?

Модуль colorsys определяет двунаправленные преобразования цвета значения между цветами, выраженные в Используется цветовое пространство RGB (красный, зеленый, синий) в компьютерных мониторах и трех других системы координат: YIQ, HLS (Hue Насыщенность света) и HSV (Hue Значение насыщенности)

Пример (взято из вышеуказанной ссылки):

>>> import colorsys
>>> colorsys.rgb_to_hsv(.3, .4, .2)
(0.25, 0.5, 0.4)
>>> colorsys.hsv_to_rgb(0.25, 0.5, 0.4)
(0.3, 0.4, 0.2)
1 голос
/ 10 апреля 2010

Какие значения R, G и B вы указали, и какие значения H, S и V, которые выглядят ошибочно, вы получили?

Код, на который вы ссылаетесь, как и colorsys, ожидает значения с плавающей запятой в диапазоне от 0,0 до 1,0. Если вы вызовете его с целочисленными значениями в диапазоне от 0 до 255, вы получите поддельные результаты. Он должен работать нормально, если вы дадите ему ожидаемые входные значения.

(Это явный сбой этого примера кода, поскольку он фактически не документирует, какие входные данные он ожидает.)

0 голосов
/ 20 мая 2015

При использовании PIL с последней копией Pillow, вероятно, следует использовать

def rgb2hsv(image):
    return image.convert('HSV')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...