Как сделать арифметику с элементами 2 разных матриц с помощью numpy? - PullRequest
0 голосов
/ 28 марта 2019

Я работаю с 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 измерения.Но я пытаюсь получить доступ к элементам и сделать арифметику с этим.Что я могу сделать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...