sách gpt4 ăn đã đi

Python - 如何根据 3D(r,g,b)空间中源颜色的颜色 "distance"对颜色列表进行排序?

In lại 作者:太空狗 更新时间:2023-10-30 01:09:21 28 4
mua khóa gpt4 giày nike

以下是我用 Python 编写的应用程序的基本步骤:

  1. 生成随机颜色列表
  2. 为这些颜色中的每一种创建一个映射,根据该颜色与 3D (r, g, b) 空间中“源颜色”的距离进行索引。 (例如,橙色 (255, 150, 0) 比深蓝色 (0, 0, 100) 更接近红色 (255, 0, 0)。现在,我有一个格式为 (distance, color ).
  3. 根据我计算的距离(从最低到最高)对该元组列表进行排序。
  4. 检索已排序颜色的列表

这是我的函数,我收到以下错误:TypeError: 'int' object has no attribute '_getitem_' on the line sorted_by_dist =排序(colorMap,key=lambda tup:tup[0])

# Sorts a list of colors according to distance from the source color
def sort_colors(colors, source):
colorMap = ()
sortedColors = list()
for i in range(len(colors)):
dist = dist_3d(colors[i], source)
colorMap = colorMap + (dist, colors[i])

sorted_by_dist = sorted(colorMap, key=lambda tup: tup[0])

for (d, c) in sorted_by_dist:
sortedColors.append(c)

return sortedColors

假设我的 dist_3d() 函数是正确的并返回一个整数值(确实如此),我做错了什么?我不明白。

câu trả lời hay nhất

您将 colorMap 构建为一个大的单维元组,第一个索引是 số nguyên。因此,您的 lambda 被传递给一个 số nguyên,然后您尝试对其进行索引。

你可能想要一个元组列表:

colorMap = []
...
dist = dist_3d(colors[i], source)
colorMap.append((dist, colors[i]))

在排序颜色的方法方面,我实际上使用了 kdtree mô-đun为此,加载了我所有的 RGB 元组。然后我可以向它请求 N 个最接近给定颜色元组的颜色:

from kdtree import KDTree

colors = [(10,10,10),(250,50,5),(100,50,20)]
query_color = (175, 25, 50)

tree = KDTree.construct_from_data(data)
# query the 2 closest colors
nearest = tree.query(query_point=query_color, t=2)

关于Python - 如何根据 3D(r,g,b)空间中源颜色的颜色 "distance"对颜色列表进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14168456/

28 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress