如何在 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)
但是当我绘制它时:
import matplotlib.pyplot as plt
plt.imshow(converted_color)
plt.show()
它显示了一些随机内容
从 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]
ex e len t!
这里是固定的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)
输出:
(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 显示颜色时遇到问题的原因,请参阅:
我不知道为什么,但它不起作用。
我试过以下代码:
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)
但是当我绘制它时:
import matplotlib.pyplot as plt
plt.imshow(converted_color)
plt.show()
它显示了一些随机内容
从 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]
ex e len t!
这里是固定的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)
输出:
(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 显示颜色时遇到问题的原因,请参阅: