#python #opencv #math #optimization #colors
Вопрос:
У меня есть эти цвета, я могу комбинировать эти цвета с соотношением, используя приведенный ниже код
avreg = np.around((red_patch*0.1) (blue_patch*0.4) (yellow_patch*0.5)).astype(int)
результаты показаны ниже
есть ли способ разложить этот цвет на предыдущий цвет, из которого он был создан. Например, найти соотношение каждого цвета, которое привело к этому цвету
Ответ №1:
Допустим Y
, np.ndarray представляет результирующий цвет, тогда вы можете получить коэффициенты, которые вы ищете, с помощью
M = np.column_stack((red_patch, blue_patch, yellow_patch))
print(np.linalg.inv(M)@Y)
(Обратите внимание , что коэффициенты могут быть не совсем теми, которые вы ввели из-за проблем с округлением .astype(int)
, но это должно примерно сработать)
Комментарии:
1. Спасибо за ваш ответ. Просто добавлю, что для неквадратичной матрицы это можно использовать. np.linalg.pinv(M)