(二十四) opencv中mat矩阵相乘

1、点乘–A*B

AB是以数学运算中矩阵相乘的方式实现的,即Mat矩阵A和B被当做纯粹的矩阵做乘法运算,要求A的列数等于B的行数时,才能定义两个矩阵相乘。如A时mn矩阵,B是np矩阵,乘积AB是一个mp矩阵。

参与点乘的两个Mat矩阵的数据类型只能是CV_32F、CV_64FC1、CV_32FC2、CV_64FC2这4种类型中的一种。

2、dot–A.dot(B)

相当于数学向量运算中的点乘,也叫向量的内积、数量积。

对于向量a和向量b:

(二十四) opencv中mat矩阵相乘

a和b的点积公式为:

(二十四) opencv中mat矩阵相乘

Dot方法声明中显示返回值是double

3、mul–A.mul(B)

Mul会计算两个Mat矩阵对应位的乘积,所以要求参与运算的矩阵A的行列和B的行列数一致

对于2*2大小的Mat矩阵A和B:

对A和B执行mul运算:

(二十四) opencv中mat矩阵相乘

Mul操作不对参与运算的两个矩阵A、B有数据类型上的要求,但要求A、B类型一致

Mat AB=A.mul(B),若声明AB时没有定义AB的数据类型,则默认AB的数据类型跟A和B保存一致

若AB精度不够,可能产生溢出,溢出的值被设置为当前精度下的最大值

Original: https://blog.csdn.net/qq_23123181/article/details/122814422
Author: li三河
Title: (二十四) opencv中mat矩阵相乘

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/532324/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球