[英]Sort RGB Colors Uniformly in Python
我有一段代碼可以找到圖像中最主要的 colors 並將它們作為 RGB 值返回。 我嘗試對它們進行排序,以便創建漸變圖像,但它們排序不正確。
img = Image.open(r'C:\Users\Dora\Projects\Python\Album-Gradient\{}'.format(filename))
palette = dominant_colors(img) #getting dominant rgb values
palette.sort(key=lambda rgb: colorsys.rgb_to_hsb(*rgb))
print(palette) #printing sorted rgb values as a list
#then I convert them into a gradient image
這是我得到的漸變圖像。
如您所見,黑色之前是深黃色。 colors 排序不均勻,梯度中有噪聲。 如何對 RGB 值進行排序,使其從黑色到彩虹的 colors 再到白色,或者從白色到彩虹的 colors 再到黑色?
(類似於黑色=>灰色=>深色=>淺色=>白色)
EDIT1:這是完整代碼的鏈接: GitHub Repo此外,如果有幫助,漸變總是由 5 colors 組成。
在將它們轉換為 HSL 后根據它們的“亮度”值對它們進行排序解決了這個問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.