[英]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.