Мне нужен трехмерный вложенный массив. Как я могу сгладить это в 1d массив? (Из-за производительности) Я предполагаю, что мне нужно умножить некоторые вещи и т. Д. c. но я не самый лучший математик Спасибо!
def imgRGB(im):
width, height = im.size
#create matrix
matrix = []
for i in range(height):
matrix.append([[0,0,0] for _ in range(width)])
#get the rgb values
for x in range(width):
for y in range(height):
r,g,b = im.getpixel((x,y))
matrix[y][x][0] = r
matrix[y][x][1] = g
matrix[y][x][2] = b
return matrix
Значения пикселей будут сравниваться с другими значениями RGB, чтобы найти наиболее близкое соответствие.
def getNearestColor(rgb):
a = []
for i in range(len(rgbValues)):
d = ((rgbValues[i][0]-rgb[0])*0.3)**2 + ((rgbValues[i][1]-rgb[1])*0.59)**2 + ((rgbValues[i][2]-rgb[2])*0.11)**2
a.append(d)
list.sort(a)
return a[0]