簡體   English   中英

Python:從 RGB colors 列表中查找最接近的 RGB 值

[英]Python : Finding the closest RGB values from a list of RGB colors

我有點卡在這里,找不到最佳性能有效的算法來從 RGB 列表中找到與目標值最接近的 5 個值。

顏色列表:

[[212, 211, 211], [159, 148, 138], [114, 106, 97], [96, 82, 68], [92, 85, 74], [200, 196, 194], [191, 189, 189], [186, 182, 179], [216, 213, 211], [185, 176, 167], [186, 183, 179], [177, 175, 174], [184, 172, 157], [229, 225, 221], [53, 48, 44], [127, 114, 103], [230, 229, 227], [218, 215, 210], [209, 203, 192], [96, 82, 68], [121, 100, 86], [206, 204, 199], [151, 149, 132], [232, 233, 233], [50, 46, 45], [188, 173, 163], [185, 164, 140], [136, 126, 115], [202, 200, 198], [124, 111, 97], [122, 101, 85], [212, 211, 211], [159, 148, 138], [172, 171, 164], [114, 106, 97], [96, 82, 68], [92, 85, 74], [200, 196, 194], [191, 189, 189], [186, 182, 179], [216, 213, 211], [185, 176, 167], [186, 183, 179], [177, 175, 174], [184, 172, 157], [229, 225, 221], [53, 48, 44], [127, 114, 103], [230, 229, 227], [218, 215, 210], [209, 203, 192], [96, 82, 68], [121, 100, 86], [206, 204, 199], [151, 149, 132], [232, 233, 233], [50, 46, 45], [188, 173, 163], [185, 164, 140], [136, 126, 115], [202, 200, 198], [124, 111, 97], [122, 101, 85], [212, 211, 211], [159, 148, 138], [172, 171, 164], [114, 106, 97], [96, 82, 68], [92, 85, 74], [200, 196, 194], [191, 189, 189], [186, 182, 179], [216, 213, 211], [185, 176, 167], [186, 183, 179], [177, 175, 174], [184, 172, 157], [229, 225, 221], [53, 48, 44], [127, 114, 103], [230, 229, 227], [218, 215, 210], [209, 203, 192], [96, 82, 68], [121, 100, 86], [206, 204, 199], [151, 149, 132], [232, 233, 233], [50, 46, 45], [188, 173, 163], [185, 164, 140], [136, 126, 115], [202, 200, 198], [124, 111, 97], [122, 101, 85], [212, 211, 211], [159, 148, 138], [172, 171, 164], [114, 106, 97], [96, 82, 68], [92, 85, 74], [200, 196, 194], [191, 189, 189], [186, 182, 179], [216, 213, 211], [185, 176, 167], [186, 183, 179], [177, 175, 174], [184, 172, 157], [229, 225, 221], [53, 48, 44], [127, 114, 103], [230, 229, 227], [218, 215, 210], [209, 203, 192], [96, 82, 68], [121, 100, 86], [206, 204, 199], [151, 149, 132], [232, 233, 233], [50, 46, 45], [188, 173, 163], [185, 164, 140], [136, 126, 115], [202, 200, 198], [124, 111, 97], [122, 101, 85], [212, 211, 211], [159, 148, 138], [172, 171, 164], [114, 106, 97], [96, 82, 68], [92, 85, 74], [200, 196, 194], [191, 189, 189], [186, 182, 179], [216, 213, 211], [185, 176, 167], [186, 183, 179], [177, 175, 174], [184, 172, 157], [229, 225, 221], [53, 48, 44], [127, 114, 103], [230, 229, 227], [218, 215, 210], [209, 203, 192], [96, 82, 68], [121, 100, 86], [206, 204, 199], [151, 149, 132], [232, 233, 233], [50, 46, 45], [188, 173, 163], [185, 164, 140], [136, 126, 115], [202, 200, 198], [124, 111, 97], [122, 101, 85], [212, 211, 211], [159, 148, 138], [172, 171, 164], [114, 106, 97], [96, 82, 68], [92, 85, 74], [200, 196, 194], [191, 189, 189], [186, 182, 179], [216, 213, 211], [185, 176, 167], [186, 183, 179], [177, 175, 174], [184, 172, 157], [229, 225, 221], [53, 48, 44], [127, 114, 103], [230, 229, 227], [218, 215, 210], [209, 203, 192], [96, 82, 68], [121, 100, 86], [206, 204, 199], [151, 149, 132], [232, 233, 233], [50, 46, 45], [188, 173, 163], [185, 164, 140], [136, 126, 115], [202, 200, 198], [124, 111, 97], [122, 101, 85], [212, 211, 211], [159, 148, 138], [172, 171, 164], [114, 106, 97], [96, 82, 68], [92, 85, 74], [200, 196, 194], [191, 189, 189], [186, 182, 179], [216, 213, 211], [185, 176, 167], [186, 183, 179], [177, 175, 174], [184, 172, 157], [229, 225, 221], [53, 48, 44], [127, 114, 103], [230, 229, 227], [218, 215, 210], [209, 203, 192], [96, 82, 68], [121, 100, 86], [206, 204, 199], [151, 149, 132], [232, 233, 233], [50, 46, 45], [188, 173, 163], [185, 164, 140], [136, 126, 115], [202, 200, 198], [124, 111, 97], [122, 101, 85], [212, 211, 211], [159, 148, 138], [172, 171, 164], [114, 106, 97], [96, 82, 68], [92, 85, 74], [200, 196, 194], [191, 189, 189], [186, 182, 179], [216, 213, 211], [185, 176, 167], [186, 183, 179], [177, 175, 174], [184, 172, 157], [229, 225, 221], [53, 48, 44], [127, 114, 103], [230, 229, 227], [218, 215, 210], [209, 203, 192], [96, 82, 68], [121, 100, 86], [206, 204, 199], [151, 149, 132], [232, 233, 233], [50, 46, 45], [188, 173, 163], [185, 164, 140], [136, 126, 115], [202, 200, 198], [124, 111, 97], [122, 101, 85], [212, 211, 211], [159, 148, 138], [172, 171, 164], [114, 106, 97], [96, 82, 68], [92, 85, 74], [200, 196, 194], [191, 189, 189], [186, 182, 179], [216, 213, 211], [185, 176, 167], [186, 183, 179], [177, 175, 174], [184, 172, 157], [229, 225, 221], [53, 48, 44], [127, 114, 103], [230, 229, 227], [218, 215, 210], [209, 203, 192], [96, 82, 68], [121, 100, 86], [206, 204, 199], [151, 149, 132], [232, 233, 233], [50, 46, 45], [188, 173, 163], [185, 164, 140], [136, 126, 115], [202, 200, 198], [124, 111, 97], [122, 101, 85], [212, 211, 211], [159, 148, 138], [172, 171, 164], [114, 106, 97], [96, 82, 68], [92, 85, 74], [200, 196, 194], [191, 189, 189], [186, 182, 179], [216, 213, 211], [185, 176, 167], [186, 183, 179], [177, 175, 174], [184, 172, 157], [229, 225, 221], [53, 48, 44], [127, 114, 103], [230, 229, 227], [218, 215, 210], [209, 203, 192], [96, 82, 68], [121, 100, 86], [206, 204, 199], [151, 149, 132], [232, 233, 233], [50, 46, 45], [188, 173, 163], [185, 164, 140], [136, 126, 115], [202, 200, 198], [124, 111, 97], [122, 101, 85], [212, 211, 211], [159, 148, 138], [172, 171, 164], [114, 106, 97], [96, 82, 68], [92, 85, 74], [200, 196, 194], [191, 189, 189], [186, 182, 179], [216, 213, 211], [185, 176, 167], [186, 183, 179], [177, 175, 174], [184, 172, 157], [229, 225, 221], [53, 48, 44], [127, 114, 103], [230, 229, 227], [218, 215, 210], [209, 203, 192], [96, 82, 68], [121, 100, 86], [206, 204, 199], [151, 149, 132], [232, 233, 233], [50, 46, 45], [188, 173, 163], [185, 164, 140], [136, 126, 115], [202, 200, 198], [124, 111, 97], [122, 101, 85], [212, 211, 211], [159, 148, 138], [172, 171, 164], [114, 106, 97], [96, 82, 68], [92, 85, 74], [200, 196, 194], [191, 189, 189], [186, 182, 179], [216, 213, 211], [185, 176, 167], [186, 183, 179], [177, 175, 174], [184, 172, 157], [229, 225, 221], [53, 48, 44], [127, 114, 103], [230, 229, 227], [218, 215, 210], [209, 203, 192], [96, 82, 68], [121, 100, 86], [206, 204, 199], [151, 149, 132], [232, 233, 233], [50, 46, 45], [188, 173, 163], [185, 164, 140], [136, 126, 115], [202, 200, 198], [124, 111, 97], [122, 101, 85], [212, 211, 211], [159, 148, 138], [172, 171, 164], [114, 106, 97], [96, 82, 68], [92, 85, 74], [200, 196, 194], [191, 189, 189], [186, 182, 179], [216, 213, 211], [185, 176, 167], [186, 183, 179], [177, 175, 174], [184, 172, 157], [229, 225, 221], [53, 48, 44], [127, 114, 103], [230, 229, 227], [218, 215, 210], [209, 203, 192], [96, 82, 68], [121, 100, 86], [206, 204, 199], [151, 149, 132], [232, 233, 233], [50, 46, 45], [188, 173, 163], [185, 164, 140], [136, 126, 115], [202, 200, 198], [124, 111, 97], [122, 101, 85], [212, 211, 211], [159, 148, 138], [172, 171, 164], [114, 106, 97], [96, 82, 68], [92, 85, 74], [200, 196, 194], [191, 189, 189], [186, 182, 179], [216, 213, 211], [185, 176, 167], [186, 183, 179], [177, 175, 174], [184, 172, 157], [229, 225, 221], [53, 48, 44], [127, 114, 103], [230, 229, 227], [218, 215, 210], [209, 203, 192], [96, 82, 68], [121, 100, 86], [206, 204, 199], [151, 149, 132], [232, 233, 233], [50, 46, 45], [188, 173, 163], [185, 164, 140], [136, 126, 115], [202, 200, 198], [124, 111, 97], [122, 101, 85], [212, 211, 211], [159, 148, 138], [172, 171, 164], [114, 106, 97], [96, 82, 68], [92, 85, 74], [200, 196, 194], [191, 189, 189], [186, 182, 179], [216, 213, 211], [185, 176, 167], [186, 183, 179], [177, 175, 174], [184, 172, 157], [229, 225, 221], [53, 48, 44], [127, 114, 103], [230, 229, 227], [218, 215, 210], [209, 203, 192], [96, 82, 68], [121, 100, 86], [206, 204, 199], [151, 149, 132], [232, 233, 233], [50, 46, 45], [188, 173, 163], [185, 164, 140], [136, 126, 115], [202, 200, 198], [124, 111, 97], [122, 101, 85], [212, 211, 211], [159, 148, 138], [172, 171, 164], [114, 106, 97], [96, 82, 68], [92, 85, 74], [200, 196, 194], [191, 189, 189], [186, 182, 179], [216, 213, 211], [185, 176, 167], [186, 183, 179], [177, 175, 174], [184, 172, 157], [229, 225, 221], [53, 48, 44], [127, 114, 103], [230, 229, 227], [218, 215, 210], [209, 203, 192], [96, 82, 68], [121, 100, 86], [206, 204, 199], [151, 149, 132], [232, 233, 233], [50, 46, 45], [188, 173, 163], [185, 164, 140], [136, 126, 115], [202, 200, 198], [124, 111, 97], [122, 101, 85], [212, 211, 211], [159, 148, 138], [172, 171, 164], [114, 106, 97], [96, 82, 68], [92, 85, 74], [200, 196, 194], [191, 189, 189], [186, 182, 179], [216, 213, 211], [185, 176, 167], [186, 183, 179], [177, 175, 174], [184, 172, 157], [229, 225, 221], [53, 48, 44], [127, 114, 103], [230, 229, 227], [218, 215, 210], [209, 203, 192], [96, 82, 68], [121, 100, 86], [206, 204, 199], [151, 149, 132], [232, 233, 233], [50, 46, 45], [188, 173, 163], [185, 164, 140], [136, 126, 115], [202, 200, 198], [124, 111, 97], [122, 101, 85], [212, 211, 211], [159, 148, 138], [172, 171, 164], [114, 106, 97], [96, 82, 68], [92, 85, 74], [200, 196, 194], [191, 189, 189], [186, 182, 179], [216, 213, 211], [185, 176, 167], [186, 183, 179], [177, 175, 174], [184, 172, 157], [229, 225, 221], [53, 48, 44], [127, 114, 103], [230, 229, 227], [218, 215, 210], [209, 203, 192], [96, 82, 68], [121, 100, 86], [206, 204, 199], [151, 149, 132], [232, 233, 233], [50, 46, 45], [188, 173, 163], [185, 164, 140], [136, 126, 115], [202, 200, 198], [124, 111, 97], [122, 101, 85], [212, 211, 211], [159, 148, 138], [172, 171, 164], [114, 106, 97], [96, 82, 68], [92, 85, 74], [200, 196, 194], [191, 189, 189], [186, 182, 179], [216, 213, 211], [185, 176, 167], [186, 183, 179], [177, 175, 174], [184, 172, 157], [229, 225, 221], [53, 48, 44], [127, 114, 103], [230, 229, 227], [218, 215, 210], [209, 203, 192], [96, 82, 68], [121, 100, 86], [206, 204, 199], [151, 149, 132], [232, 233, 233], [50, 46, 45], [188, 173, 163], [185, 164, 140], [136, 126, 115], [202, 200, 198], [124, 111, 97], [122, 101, 85], [212, 211, 211], [159, 148, 138], [172, 171, 164], [114, 106, 97], [96, 82, 68], [92, 85, 74], [200, 196, 194], [191, 189, 189], [186, 182, 179], [216, 213, 211], [185, 176, 167], [186, 183, 179], [177, 175, 174], [184, 172, 157], [229, 225, 221], [53, 48, 44], [127, 114, 103], [230, 229, 227], [218, 215, 210], [209, 203, 192], [96, 82, 68], [121, 100, 86], [206, 204, 199], [151, 149, 132], [232, 233, 233], [50, 46, 45], [188, 173, 163], [185, 164, 140], [136, 126, 115], [202, 200, 198], [124, 111, 97], [122, 101, 85], [212, 211, 211], [159, 148, 138], [172, 171, 164], [114, 106, 97], [96, 82, 68], [92, 85, 74], [200, 196, 194], [191, 189, 189], [186, 182, 179], [216, 213, 211], [185, 176, 167], [186, 183, 179], [177, 175, 174], [184, 172, 157], [229, 225, 221], [53, 48, 44], [127, 114, 103], [230, 229, 227], [218, 215, 210], [209, 203, 192], [96, 82, 68], [121, 100, 86], [206, 204, 199], [151, 149, 132], [232, 233, 233], [50, 46, 45], [188, 173, 163], [185, 164, 140], [136, 126, 115], [202, 200, 198], [124, 111, 97], [122, 101, 85], [212, 211, 211], [159, 148, 138], [172, 171, 164], [114, 106, 97], [96, 82, 68], [92, 85, 74], [200, 196, 194], [191, 189, 189], [186, 182, 179], [216, 213, 211], [185, 176, 167], [186, 183, 179], [177, 175, 174], [184, 172, 157], [229, 225, 221], [53, 48, 44], [127, 114, 103], [230, 229, 227], [218, 215, 210], [209, 203, 192], [96, 82, 68], [121, 100, 86], [206, 204, 199], [151, 149, 132], [232, 233, 233], [50, 46, 45], [188, 173, 163], [185, 164, 140], [136, 126, 115], [202, 200, 198], [124, 111, 97], [122, 101, 85], [212, 211, 211], [159, 148, 138], [172, 171, 164], [114, 106, 97], [96, 82, 68], [92, 85, 74], [200, 196, 194], [191, 189, 189], [186, 182, 179]]
Target color:  [202, 200, 198]
the expected valaue:
[[#,#,#], [#,#,#], [#,#,#], [#,#,#], [#,#,#]]

我正在使用這組顏色列表來查找具有相似 colors 的圖像。 可能存在重復值,並且應考慮忽略確切值,因為這些值是從一組可以是完全相同的照片的圖像中提取的。

使用歐式距離:

import math

def distance(a, b):
    return math.hypot(*(v2 - v1 for v1, v2 in zip(a, b)))

colors = [[212, 211, 211], [159, 148, 138], [114, 106, 97], [96, 82, 68], [92, 85, 74], [200, 196, 194], [191, 189, 189], [186, 182, 179], [216, 213, 211], [185, 176, 167], [186, 183, 179], [177, 175, 174], [184, 172, 157], [229, 225, 221], [53, 48, 44], [127, 114, 103], [230, 229, 227], [218, 215, 210], [209, 203, 192], [96, 82, 68], [121, 100, 86], [206, 204, 199], [151, 149, 132], [232, 233, 233], [50, 46, 45], [188, 173, 163], [185, 164, 140], [136, 126, 115], [202, 200, 198], [124, 111, 97], [122, 101, 85], [212, 211, 211], [159, 148, 138], [172, 171, 164], [114, 106, 97], [96, 82, 68], [92, 85, 74], [200, 196, 194], [191, 189, 189], [186, 182, 179], [216, 213, 211], [185, 176, 167], [186, 183, 179], [177, 175, 174], [184, 172, 157], [229, 225, 221], [53, 48, 44], [127, 114, 103], [230, 229, 227], [218, 215, 210], [209, 203, 192], [96, 82, 68], [121, 100, 86], [206, 204, 199], [151, 149, 132], [232, 233, 233], [50, 46, 45], [188, 173, 163], [185, 164, 140], [136, 126, 115], [202, 200, 198], [124, 111, 97], [122, 101, 85], [212, 211, 211], [159, 148, 138], [172, 171, 164], [114, 106, 97], [96, 82, 68], [92, 85, 74], [200, 196, 194], [191, 189, 189], [186, 182, 179], [216, 213, 211], [185, 176, 167], [186, 183, 179], [177, 175, 174], [184, 172, 157], [229, 225, 221], [53, 48, 44], [127, 114, 103], [230, 229, 227], [218, 215, 210], [209, 203, 192], [96, 82, 68], [121, 100, 86], [206, 204, 199], [151, 149, 132], [232, 233, 233], [50, 46, 45], [188, 173, 163], [185, 164, 140], [136, 126, 115], [202, 200, 198], [124, 111, 97], [122, 101, 85], [212, 211, 211], [159, 148, 138], [172, 171, 164], [114, 106, 97], [96, 82, 68], [92, 85, 74], [200, 196, 194], [191, 189, 189], [186, 182, 179], [216, 213, 211], [185, 176, 167], [186, 183, 179], [177, 175, 174], [184, 172, 157], [229, 225, 221], [53, 48, 44], [127, 114, 103], [230, 229, 227], [218, 215, 210], [209, 203, 192], [96, 82, 68], [121, 100, 86], [206, 204, 199], [151, 149, 132], [232, 233, 233], [50, 46, 45], [188, 173, 163], [185, 164, 140], [136, 126, 115], [202, 200, 198], [124, 111, 97], [122, 101, 85], [212, 211, 211], [159, 148, 138], [172, 171, 164], [114, 106, 97], [96, 82, 68], [92, 85, 74], [200, 196, 194], [191, 189, 189], [186, 182, 179], [216, 213, 211], [185, 176, 167], [186, 183, 179], [177, 175, 174], [184, 172, 157], [229, 225, 221], [53, 48, 44], [127, 114, 103], [230, 229, 227], [218, 215, 210], [209, 203, 192], [96, 82, 68], [121, 100, 86], [206, 204, 199], [151, 149, 132], [232, 233, 233], [50, 46, 45], [188, 173, 163], [185, 164, 140], [136, 126, 115], [202, 200, 198], [124, 111, 97], [122, 101, 85], [212, 211, 211], [159, 148, 138], [172, 171, 164], [114, 106, 97], [96, 82, 68], [92, 85, 74], [200, 196, 194], [191, 189, 189], [186, 182, 179], [216, 213, 211], [185, 176, 167], [186, 183, 179], [177, 175, 174], [184, 172, 157], [229, 225, 221], [53, 48, 44], [127, 114, 103], [230, 229, 227], [218, 215, 210], [209, 203, 192], [96, 82, 68], [121, 100, 86], [206, 204, 199], [151, 149, 132], [232, 233, 233], [50, 46, 45], [188, 173, 163], [185, 164, 140], [136, 126, 115], [202, 200, 198], [124, 111, 97], [122, 101, 85], [212, 211, 211], [159, 148, 138], [172, 171, 164], [114, 106, 97], [96, 82, 68], [92, 85, 74], [200, 196, 194], [191, 189, 189], [186, 182, 179], [216, 213, 211], [185, 176, 167], [186, 183, 179], [177, 175, 174], [184, 172, 157], [229, 225, 221], [53, 48, 44], [127, 114, 103], [230, 229, 227], [218, 215, 210], [209, 203, 192], [96, 82, 68], [121, 100, 86], [206, 204, 199], [151, 149, 132], [232, 233, 233], [50, 46, 45], [188, 173, 163], [185, 164, 140], [136, 126, 115], [202, 200, 198], [124, 111, 97], [122, 101, 85], [212, 211, 211], [159, 148, 138], [172, 171, 164], [114, 106, 97], [96, 82, 68], [92, 85, 74], [200, 196, 194], [191, 189, 189], [186, 182, 179], [216, 213, 211], [185, 176, 167], [186, 183, 179], [177, 175, 174], [184, 172, 157], [229, 225, 221], [53, 48, 44], [127, 114, 103], [230, 229, 227], [218, 215, 210], [209, 203, 192], [96, 82, 68], [121, 100, 86], [206, 204, 199], [151, 149, 132], [232, 233, 233], [50, 46, 45], [188, 173, 163], [185, 164, 140], [136, 126, 115], [202, 200, 198], [124, 111, 97], [122, 101, 85], [212, 211, 211], [159, 148, 138], [172, 171, 164], [114, 106, 97], [96, 82, 68], [92, 85, 74], [200, 196, 194], [191, 189, 189], [186, 182, 179], [216, 213, 211], [185, 176, 167], [186, 183, 179], [177, 175, 174], [184, 172, 157], [229, 225, 221], [53, 48, 44], [127, 114, 103], [230, 229, 227], [218, 215, 210], [209, 203, 192], [96, 82, 68], [121, 100, 86], [206, 204, 199], [151, 149, 132], [232, 233, 233], [50, 46, 45], [188, 173, 163], [185, 164, 140], [136, 126, 115], [202, 200, 198], [124, 111, 97], [122, 101, 85], [212, 211, 211], [159, 148, 138], [172, 171, 164], [114, 106, 97], [96, 82, 68], [92, 85, 74], [200, 196, 194], [191, 189, 189], [186, 182, 179], [216, 213, 211], [185, 176, 167], [186, 183, 179], [177, 175, 174], [184, 172, 157], [229, 225, 221], [53, 48, 44], [127, 114, 103], [230, 229, 227], [218, 215, 210], [209, 203, 192], [96, 82, 68], [121, 100, 86], [206, 204, 199], [151, 149, 132], [232, 233, 233], [50, 46, 45], [188, 173, 163], [185, 164, 140], [136, 126, 115], [202, 200, 198], [124, 111, 97], [122, 101, 85], [212, 211, 211], [159, 148, 138], [172, 171, 164], [114, 106, 97], [96, 82, 68], [92, 85, 74], [200, 196, 194], [191, 189, 189], [186, 182, 179], [216, 213, 211], [185, 176, 167], [186, 183, 179], [177, 175, 174], [184, 172, 157], [229, 225, 221], [53, 48, 44], [127, 114, 103], [230, 229, 227], [218, 215, 210], [209, 203, 192], [96, 82, 68], [121, 100, 86], [206, 204, 199], [151, 149, 132], [232, 233, 233], [50, 46, 45], [188, 173, 163], [185, 164, 140], [136, 126, 115], [202, 200, 198], [124, 111, 97], [122, 101, 85], [212, 211, 211], [159, 148, 138], [172, 171, 164], [114, 106, 97], [96, 82, 68], [92, 85, 74], [200, 196, 194], [191, 189, 189], [186, 182, 179], [216, 213, 211], [185, 176, 167], [186, 183, 179], [177, 175, 174], [184, 172, 157], [229, 225, 221], [53, 48, 44], [127, 114, 103], [230, 229, 227], [218, 215, 210], [209, 203, 192], [96, 82, 68], [121, 100, 86], [206, 204, 199], [151, 149, 132], [232, 233, 233], [50, 46, 45], [188, 173, 163], [185, 164, 140], [136, 126, 115], [202, 200, 198], [124, 111, 97], [122, 101, 85], [212, 211, 211], [159, 148, 138], [172, 171, 164], [114, 106, 97], [96, 82, 68], [92, 85, 74], [200, 196, 194], [191, 189, 189], [186, 182, 179], [216, 213, 211], [185, 176, 167], [186, 183, 179], [177, 175, 174], [184, 172, 157], [229, 225, 221], [53, 48, 44], [127, 114, 103], [230, 229, 227], [218, 215, 210], [209, 203, 192], [96, 82, 68], [121, 100, 86], [206, 204, 199], [151, 149, 132], [232, 233, 233], [50, 46, 45], [188, 173, 163], [185, 164, 140], [136, 126, 115], [202, 200, 198], [124, 111, 97], [122, 101, 85], [212, 211, 211], [159, 148, 138], [172, 171, 164], [114, 106, 97], [96, 82, 68], [92, 85, 74], [200, 196, 194], [191, 189, 189], [186, 182, 179], [216, 213, 211], [185, 176, 167], [186, 183, 179], [177, 175, 174], [184, 172, 157], [229, 225, 221], [53, 48, 44], [127, 114, 103], [230, 229, 227], [218, 215, 210], [209, 203, 192], [96, 82, 68], [121, 100, 86], [206, 204, 199], [151, 149, 132], [232, 233, 233], [50, 46, 45], [188, 173, 163], [185, 164, 140], [136, 126, 115], [202, 200, 198], [124, 111, 97], [122, 101, 85], [212, 211, 211], [159, 148, 138], [172, 171, 164], [114, 106, 97], [96, 82, 68], [92, 85, 74], [200, 196, 194], [191, 189, 189], [186, 182, 179], [216, 213, 211], [185, 176, 167], [186, 183, 179], [177, 175, 174], [184, 172, 157], [229, 225, 221], [53, 48, 44], [127, 114, 103], [230, 229, 227], [218, 215, 210], [209, 203, 192], [96, 82, 68], [121, 100, 86], [206, 204, 199], [151, 149, 132], [232, 233, 233], [50, 46, 45], [188, 173, 163], [185, 164, 140], [136, 126, 115], [202, 200, 198], [124, 111, 97], [122, 101, 85], [212, 211, 211], [159, 148, 138], [172, 171, 164], [114, 106, 97], [96, 82, 68], [92, 85, 74], [200, 196, 194], [191, 189, 189], [186, 182, 179], [216, 213, 211], [185, 176, 167], [186, 183, 179], [177, 175, 174], [184, 172, 157], [229, 225, 221], [53, 48, 44], [127, 114, 103], [230, 229, 227], [218, 215, 210], [209, 203, 192], [96, 82, 68], [121, 100, 86], [206, 204, 199], [151, 149, 132], [232, 233, 233], [50, 46, 45], [188, 173, 163], [185, 164, 140], [136, 126, 115], [202, 200, 198], [124, 111, 97], [122, 101, 85], [212, 211, 211], [159, 148, 138], [172, 171, 164], [114, 106, 97], [96, 82, 68], [92, 85, 74], [200, 196, 194], [191, 189, 189], [186, 182, 179], [216, 213, 211], [185, 176, 167], [186, 183, 179], [177, 175, 174], [184, 172, 157], [229, 225, 221], [53, 48, 44], [127, 114, 103], [230, 229, 227], [218, 215, 210], [209, 203, 192], [96, 82, 68], [121, 100, 86], [206, 204, 199], [151, 149, 132], [232, 233, 233], [50, 46, 45], [188, 173, 163], [185, 164, 140], [136, 126, 115], [202, 200, 198], [124, 111, 97], [122, 101, 85], [212, 211, 211], [159, 148, 138], [172, 171, 164], [114, 106, 97], [96, 82, 68], [92, 85, 74], [200, 196, 194], [191, 189, 189], [186, 182, 179], [216, 213, 211], [185, 176, 167], [186, 183, 179], [177, 175, 174], [184, 172, 157], [229, 225, 221], [53, 48, 44], [127, 114, 103], [230, 229, 227], [218, 215, 210], [209, 203, 192], [96, 82, 68], [121, 100, 86], [206, 204, 199], [151, 149, 132], [232, 233, 233], [50, 46, 45], [188, 173, 163], [185, 164, 140], [136, 126, 115], [202, 200, 198], [124, 111, 97], [122, 101, 85], [212, 211, 211], [159, 148, 138], [172, 171, 164], [114, 106, 97], [96, 82, 68], [92, 85, 74], [200, 196, 194], [191, 189, 189], [186, 182, 179], [216, 213, 211], [185, 176, 167], [186, 183, 179], [177, 175, 174], [184, 172, 157], [229, 225, 221], [53, 48, 44], [127, 114, 103], [230, 229, 227], [218, 215, 210], [209, 203, 192], [96, 82, 68], [121, 100, 86], [206, 204, 199], [151, 149, 132], [232, 233, 233], [50, 46, 45], [188, 173, 163], [185, 164, 140], [136, 126, 115], [202, 200, 198], [124, 111, 97], [122, 101, 85], [212, 211, 211], [159, 148, 138], [172, 171, 164], [114, 106, 97], [96, 82, 68], [92, 85, 74], [200, 196, 194], [191, 189, 189], [186, 182, 179], [216, 213, 211], [185, 176, 167], [186, 183, 179], [177, 175, 174], [184, 172, 157], [229, 225, 221], [53, 48, 44], [127, 114, 103], [230, 229, 227], [218, 215, 210], [209, 203, 192], [96, 82, 68], [121, 100, 86], [206, 204, 199], [151, 149, 132], [232, 233, 233], [50, 46, 45], [188, 173, 163], [185, 164, 140], [136, 126, 115], [202, 200, 198], [124, 111, 97], [122, 101, 85], [212, 211, 211], [159, 148, 138], [172, 171, 164], [114, 106, 97], [96, 82, 68], [92, 85, 74], [200, 196, 194], [191, 189, 189], [186, 182, 179], [216, 213, 211], [185, 176, 167], [186, 183, 179], [177, 175, 174], [184, 172, 157], [229, 225, 221], [53, 48, 44], [127, 114, 103], [230, 229, 227], [218, 215, 210], [209, 203, 192], [96, 82, 68], [121, 100, 86], [206, 204, 199], [151, 149, 132], [232, 233, 233], [50, 46, 45], [188, 173, 163], [185, 164, 140], [136, 126, 115], [202, 200, 198], [124, 111, 97], [122, 101, 85], [212, 211, 211], [159, 148, 138], [172, 171, 164], [114, 106, 97], [96, 82, 68], [92, 85, 74], [200, 196, 194], [191, 189, 189], [186, 182, 179], [216, 213, 211], [185, 176, 167], [186, 183, 179], [177, 175, 174], [184, 172, 157], [229, 225, 221], [53, 48, 44], [127, 114, 103], [230, 229, 227], [218, 215, 210], [209, 203, 192], [96, 82, 68], [121, 100, 86], [206, 204, 199], [151, 149, 132], [232, 233, 233], [50, 46, 45], [188, 173, 163], [185, 164, 140], [136, 126, 115], [202, 200, 198], [124, 111, 97], [122, 101, 85], [212, 211, 211], [159, 148, 138], [172, 171, 164], [114, 106, 97], [96, 82, 68], [92, 85, 74], [200, 196, 194], [191, 189, 189], [186, 182, 179]]
target = [202, 200, 198]

closest = sorted(colors, key=lambda x: distance(target, x))
print(closest[:5])

如果沒有關於什么是“最接近”的 RGB 的詳細定義,我認為這個助手可能會為您提供一些想法?

導入數學

def distance(c1, c2):
    r1,g1,b1 = c1
    r2,g2,b2 = c2
    return math.sqrt((r1 - r2)**2 + (g1 - g2) ** 2 + (b1 - b2) **2)

然后你可以通過 color_list 來檢查和匹配。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM