openCV矩阵运算

原文链接

参考链接

Mat矩阵mul——A.mul(B)

Opencv中mul会计算两个Mat矩阵对应位的乘积,所以要求参与运算的矩阵A的行列和B的行列数一致。计算结果是跟A或B行列数一致的一个Mat矩阵。

以简单的情况为例,对于2*2大小的Mat矩阵A和B:

 

对A和B执行mul运算:

mul说明:

1.  mul操作不对参与运算的两个矩阵A、B有数据类型上的要求,但要求A,B类型一致,不然报错;

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

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

#include "core/core.hpp"     
#include "iostream"  
 
using namespace std;   
using namespace cv;  
 
int main(int argc,char *argv[])    
{ 
	Mat A=Mat::ones(2,3,CV_8UC1);
	Mat B=Mat::ones(2,3,CV_8UC1);
 
	A.at<uchar>(0,0)=60;
	A.at<uchar>(0,1)=2;
	A.at<uchar>(0,2)=3;
	A.at<uchar>(1,0)=4;
	A.at<uchar>(1,1)=5;
	A.at<uchar>(1,2)=6;
 
	B.at<uchar>(0,0)=60;
	B.at<uchar>(0,1)=2;
	B.at<uchar>(0,2)=3;
	B.at<uchar>(1,0)=4;
	B.at<uchar>(1,1)=5;
	B.at<uchar>(1,2)=6;
 
	Mat AB=A.mul(B);
 
	cout<<"A=\n"<<A<<endl<<endl;
	cout<<"B=\n"<<B<<endl<<endl;
	cout<<"AB=\n"<<AB<<endl<<endl;
 
	system("pause");
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值