簡體   English   中英

如何在 python 中將 hsv 轉換為 rgb?

[英]How to convert hsv to rgb in python?

我不知道為什么,但它不起作用。

我試過以下代碼:

matplotlib.colors.hsv_to_rgb([[[220 / 255, 255 / 255, 255 / 255]]])

matplotlib.colors.hsv_to_rgb([[[(220 % 360) / 255, 255 / 255, 255 / 255]]])

matplotlib.colors.hsv_to_rgb([[[220, 255, 255]]])

# same with
cv2.cvtColor(np.uint8([[[120, 255, 255]]]), cv2.COLOR_HSV2RGB)

但是當我 plot 時:

import matplotlib.pyplot as plt
plt.imshow(converted_color)
plt.show()

它顯示了一些隨機的東西

GIMP獲取值:

GIMP 的值


最后結果

h, s, v = 270, 100, 100
r, g, b = np.multiply((colorsys.hsv_to_rgb(h/360, s/100, v/100)), 255)
crop[mask == 0] = [r, g, b]

例如!


這是固定的 cv2 解決方案。 h - 最大 180。 opencv 像往常一樣我行我素... -___-

h, s, v = 270, 100, 100
r, g, b = cv2.cvtColor(np.uint8([[[h / 2, (s/100)*255, (v/100)*255]]]), cv2.COLOR_HSV2RGB)[0][0]
crop[mask == 0] = [r, g, b]

嘗試使用 colorsys:

import colorsys
colorsys.hsv_to_rgb(0.5, 0.5, 0.4)

Output:

(0.2, 0.4, 0.4)

編輯

一個例子可能是:

import matplotlib
import matplotlib.pyplot as plt
import colorsys

h, s, v = 0.83, 1.0, 0.50
#RGB from 0 to 1 NO from 0 to 255
r, g, b = colorsys.hsv_to_rgb(h, s, v)
print(r, g, b)

rect1 = matplotlib.patches.Rectangle((-200, -100), 400, 200, color=[r, g, b])
plt.axes().add_patch(rect1)
plt.show()

在此處輸入圖像描述

要了解使用 imshow 顯示顏色時可能遇到問題的原因,請參閱: 使用 imshow 打印一種顏色

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM