Ошибка значения, поскольку я пытаюсь взять скалярное произведение 2 матриц - PullRequest
0 голосов
/ 24 февраля 2019

Я пытаюсь взять скалярное произведение двух выходов Собеля.

car_img = cv2.imread("car.png")

ix = cv2.Sobel(car_img, cv2.CV_64F, 1, 0, ksize = ksize, scale = scale)
iy = cv2.Sobel(car_img, cv2.CV_64F, 0, 1, ksize = ksize, scale = scale)

Когда я пытаюсь взять их скалярное произведение, например:

np.dot(ix, iy)

Я получаю сообщение об ошибке:

ValueError: shapes (240,320,3) and (240,320,3) not aligned: 3 (dim 2) != 320 (dim 1)

Что я здесь делаю неправильно?

1 Ответ

0 голосов
/ 24 февраля 2019

np.dot() выполняет умножение матриц, если вы имеете дело с двумерными массивами.Таким образом, ваш код пытается умножить две m x n матрицы, которые не определены, когда m != n.Нечто подобное np.dot(ix, np.transpose(iy)) - то есть умножение матрицы ix на transpose из iy, будет определено, например, , потому что последний будет n x mматрица.

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