我尝试取2个矩阵的点积时出现值错误

时间:2019-02-24 09:11:50

标签: python numpy opencv

我正在尝试获取2个Sobel输出的点积。

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 :(得分:1)

np.dot()如果要处理二维数组,则会进行矩阵乘法。因此,您的代码正在尝试将两个m x n矩阵相乘,这在m != n时未定义。像np.dot(ix, np.transpose(iy))之类的东西-也就是说,将ix的{​​{3}}乘以矩阵iy,例如,将定义 ,因为后者是n x m矩阵。