(二十四) opencv中mat矩阵相乘
1、点乘--A*BA*B是以数学运算中矩阵相乘的方式实现的,即Mat矩阵A和B被当做纯粹的矩阵做乘法运算,要求A的列数等于B的行数时,才能定义两个矩阵相乘。如A时m*n矩阵,B是n*p矩阵,乘积AB是一个m*p矩阵。参与点乘的两个Mat矩阵的数据类型只能是CV_32F、CV_64FC1、CV_32FC2、CV_64FC2这4种类型中的一种。2、dot--A.dot(B)相当于数学向量运算中的点乘,
1、点乘--A*B
A*B是以数学运算中矩阵相乘的方式实现的,即Mat矩阵A和B被当做纯粹的矩阵做乘法运算,要求A的列数等于B的行数时,才能定义两个矩阵相乘。如A时m*n矩阵,B是n*p矩阵,乘积AB是一个m*p矩阵。
参与点乘的两个Mat矩阵的数据类型只能是CV_32F、CV_64FC1、CV_32FC2、CV_64FC2这4种类型中的一种。
2、dot--A.dot(B)
相当于数学向量运算中的点乘,也叫向量的内积、数量积。
对于向量a和向量b:
a和b的点积公式为:
Dot方法声明中显示返回值是double
3、mul--A.mul(B)
Mul会计算两个Mat矩阵对应位的乘积,所以要求参与运算的矩阵A的行列和B的行列数一致
对于2*2大小的Mat矩阵A和B:
对A和B执行mul运算:
Mul操作不对参与运算的两个矩阵A、B有数据类型上的要求,但要求A、B类型一致
Mat AB=A.mul(B),若声明AB时没有定义AB的数据类型,则默认AB的数据类型跟A和B保存一致
若AB精度不够,可能产生溢出,溢出的值被设置为当前精度下的最大值
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)