gpt4 book ai didi

python - 如何获得代表反射光的色标

转载 作者:行者123 更新时间:2023-12-01 02:20:19 24 4
gpt4 key购买 nike

我从 Wikipedia page on Dodecahedrons 得到了下面这张精彩的图片。它显示了一个缓慢旋转的 Tetroid。如果你仔细观察,很明显,假设是屏幕外某处有光源。如果脸部向观察者反射更多的光,则看起来更亮,如果反射回的光更少,则看起来更暗。我有一个关于如何获得面部在特定旋转时反射回来的光量的度量的想法。我还可以将指标缩放到 0 到 255 之间的值(大多数色标均采用该值)。但是,当指标较高时,如何获得看起来像明亮的反射蓝色的实际 RGB 值,而当指标较低时,如何获得看起来像深蓝色的实际 RGB 值?

enter image description here

最佳答案

我建议您使用标准colorsys用于此任务的模块,并在 HSV 或 HLS 颜色坐标系中工作。通常,您需要确定基色的色调和饱和度,然后改变值或亮度以创建所需的色调范围。

这是一个使用 Numpy 根据给定色调创建 HLS 网格的简短示例。

from colorsys import hls_to_rgb
import numpy as np
from PIL import Image

def ls_grid(hue, numcolors, scale):
a = np.linspace(0, 1, num=numcolors, endpoint=True)
grid = np.array([[hls_to_rgb(hue, lite, sat) for sat in a] for lite in a])
grid = (0.5 + 255 * grid).astype(np.uint8)
return grid.repeat(scale, axis=1).repeat(scale, axis=0)

hue = 0.585
numcolors, scale = 32, 16
grid = ls_grid(hue, numcolors, scale)
img = Image.fromarray(grid)
img.show()
img.save('litesat.png')

lightness-saturation grid

关于python - 如何获得代表反射光的色标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48030527/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com