В проекте на Python, предназначенном для работы с изображениями, есть такой код:
for i in range(1, width - 1):
for j in range(1, height - 1):
r = 0
g = 0
b = 0
current_matrix = [[0] * 3 for n in range(3)]
for k in range(3):
for m in range(0, 3):
for m2 in range(0, 3):
current_matrix[m][m2] = pix[i - 1 + m, j - 1 + m2][k]
if k == 0:
r = draw_effects_functions.change_color_effects(l, current_matrix, matrix_type_dict)
elif k == 1:
g = draw_effects_functions.change_color_effects(l, current_matrix, matrix_type_dict)
elif k == 2:
b = draw_effects_functions.change_color_effects(l, current_matrix, matrix_type_dict)
draw.point((i, j), (r, g, b))
Ссылка на файл с алгоритмом Ссылка на проект
UPD: Сложность алгоритма, на самом деле, O(n^2).
Можно ли как-либо его упростить?