Я работаю с Computer Vision и хочу вычислить координаты хроматической диаграммы изображения, которая использует формулу:
r = R / (R + G + B)
Я работаю с пустыми массивами и создал двумерный массив для хранения всех значений r
.
Я не хочу использовать матричное умножение, потому что я хочу умножать только элементыиз двух матриц, которые находятся в одной и той же позиции (т.е. finalmatrix[1][1] = matrix[1][1] * othermatrix[1][1]
, finalmatrix[1][1] = matrix[2][2] * othermatrix [2][2]...finalmatrix[n][n] = matrix[n][n] * othermatrix [n][n]
).
Код, который я пробовал:
fruta2 = np.ones((720,1280), dtype= np.uint8)
frutar = np.ones((720, 1280), dtype= np.uint8)
for i in fruta2:
for j in i:
frutar[i][j] = fruta2[i][j] * ((fruta[i][j][0])/(fruta[i][j][0] + fruta[i][j][1] + fruta[i][j][2]))
Возвращена ошибка:
ValueError: operands could not be broadcast together with shapes (1280,) (3,)
Переменная fruta
является RGB-изображением фрукта.
Я понимаю, что это не работает, потому что один массив имеет 2 измерения, а другой - 3 измерения.Но я пытаюсь получить доступ к элементам и сделать арифметику с этим.Что я могу сделать?