正文:
Opencv验证:
定义两个Mat矩阵A和B点乘,A为2行3列,B为3行2列:
#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_32FC1);
Mat B=Mat::ones(3,2,CV_32FC1);
Mat AB;
A.at<float>(0,0)=1;
A.at<float>(0,1)=2;
A.at<float>(0,2)=3;
A.at<float>(1,0)=4;
A.at<float>(1,1)=5;
A.at<float>(1,2)=6;
B.at<float>(0,0)=1;
B.at<float>(0,1)=2;
B.at<float>(1,0)=3;
B.at<float>(1,1)=4;
B.at<float>(2,0)=5;
B.at<float>(2,1)=6;
AB=A*B;
cout<<"A=\n"<<A<<endl<<endl;
cout<<"B=\n"<<B<<endl<<endl;
cout<<"AB=\n"<<AB<<endl<<endl;
system("pause");
}
扫描二维码关注公众号,回复:
13579067 查看本文章
#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)=1;
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)=1;
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;
double AB=A.dot(B);
cout<<"A=\n"<<A<<endl<<endl;
cout<<"B=\n"<<B<<endl<<endl;
cout<<"double类型的AB=\n"<<AB<<endl<<endl;
system("pause");
}
//! per-element matrix multiplication by means of matrix expressions
MatExpr mul(InputArray m, double scale=1) const;
Opencv验证:
#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");
}