代码之家  ›  专栏  ›  技术社区  ›  sazr

得到颜色和颜色列表之间的欧几里得距离

  •  0
  • sazr  · 技术社区  · 7 年前

    在numpy或scipy或scikit中学习如何找到一种颜色和一组颜色之间的距离?我知道如何计算两组颜色之间的欧几里德距离。但我只是有一种颜色,我想知道它和一组颜色之间的欧几里德距离,这样我就可以在这个颜色数组中找到“最接近”的颜色?

    以下适用于2种颜色阵列,但不适用于1种颜色和一种颜色阵列:

    from scipy.spatial.distance import cdist, euclidean
    colour = (255,0,0)
    colours = [(255,0,0), (255,0,0), (255,0,0)]
    colour_array = [(255,255,255), (0,0,0), (255,0,0)]
    dists = cdist(colour, colour_array)  # error because not same shape/dimensions
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   Matthew Miller    7 年前

    您可以简单地将单一颜色放入一个元素数组中,并将其与颜色数组进行比较。例如:

    from scipy.spatial.distance import cdist
    
    colour = (255, 0, 0)
    colour_array = [(255, 255, 255), (0, 0, 0), (255, 0, 0)]
    
    # Note change here.
    dists = cdist([colour], colour_array)