opencv计算矩阵与数值的乘积,矩阵与矩阵的乘积
2014-07-15 09:53
393 查看
1、矩阵与数值的乘积
在进行数组与一个常量相乘的运算时,使用了Mat类中的mul函数。
使用后,发现数据有些异常,于是就打印出每一个计算后的数值,
发现原来该函数是将,m中矩阵每个元素先做二次方运算,再与scale相乘,于是放弃用该函数,改用
在使用时,先设置
然后再进行src1与scale的相乘运算:
2、矩阵与矩阵的乘积
C(m*k) = A(m*n) * B(n*k)
计算上述运算时,就不能用
这个函数来计算了,因为这个函数只适用于计算两个大小相同的矩阵的对应点的乘积。
所以采用gemm()函数来计算:
使用时注意flags的含义:默认是0,表示输入的矩阵都不转置。
dst = alpha* src1 *src2 + gamma* src3
如果要对某个输入的矩阵进行转置,可进行如下设置:
flags –
operation flags:
GEMM_1_T transposes src1.
GEMM_2_T transposes src2.
GEMM_3_T transposes src3.
在进行数组与一个常量相乘的运算时,使用了Mat类中的mul函数。
//! per-element matrix multiplication by means of matrix expressions MatExpr mul(InputArray m, double scale=1) const;
使用后,发现数据有些异常,于是就打印出每一个计算后的数值,
发现原来该函数是将,m中矩阵每个元素先做二次方运算,再与scale相乘,于是放弃用该函数,改用
//! computes element-wise weighted product of the two arrays (dst = scale*src1*src2) CV_EXPORTS_W void multiply(InputArray src1, InputArray src2, OutputArray dst, double scale=1, int dtype=-1);
在使用时,先设置
Mat src2 = Mat::ones(src1.rows, src1.cols, src1.type());
然后再进行src1与scale的相乘运算:
multiply(src1, src2, IResult, scale);
2、矩阵与矩阵的乘积
C(m*k) = A(m*n) * B(n*k)
计算上述运算时,就不能用
<pre name="code" class="cpp">multiply(src1, src2, IResult, scale);
这个函数来计算了,因为这个函数只适用于计算两个大小相同的矩阵的对应点的乘积。
所以采用gemm()函数来计算:
//! implements generalized matrix product algorithm GEMM from BLAS CV_EXPORTS_W void gemm(InputArray src1, InputArray src2, double alpha, InputArray src3, double gamma, OutputArray dst, int flags=0);
使用时注意flags的含义:默认是0,表示输入的矩阵都不转置。
dst = alpha* src1 *src2 + gamma* src3
如果要对某个输入的矩阵进行转置,可进行如下设置:
flags –
operation flags:
GEMM_1_T transposes src1.
GEMM_2_T transposes src2.
GEMM_3_T transposes src3.
相关文章推荐
- OpenCV中的数值计算功能(一)矩阵求逆(伪逆)
- 用opencv计算棋盘格内角点坐标(通过多个内角点获得转换矩阵),并同时用halcon和opnecv对图像进行透视变换
- MatMul 矩阵乘积运算 (前向计算,反向梯度计算)
- 计算特征矩阵及哈希值(含OpenCV代码)
- 题目1489:计算两个矩阵的乘积
- OpenCV仿射映射矩阵的两种计算方法
- MATLAB双目标定与OpenCV计算矫正参数矩阵
- 用opencv计算棋盘格内角点坐标(通过4个内角点获得转换矩阵),并同时用halcon和opnecv对图像进行透视变换
- opencv中矩阵计算的一些函数
- Open Invertor 引擎中的点与矩阵的乘积计算
- OpenCV计算变换与重投影的矩阵说明
- @大脑练习: 计算两个矩阵的乘积
- OpenCV,计算两幅图像的单应矩阵
- opencv3计算变换矩阵getAffineTransform函数和进行仿射变换warpAffine函数
- opencv 计算旋转矩阵R,平移矩阵T
- 题目1489:计算两个矩阵的乘积
- 数值计算与方法 && 实验6||7 && LU分解求行列式的值和矩阵的逆
- opencv3计算变换矩阵getAffineTransform函数和进行仿射变换warpAffine函数-滚动条
- 哈工大机考:计算两个矩阵的乘积
- 数值计算程序大放送-矩阵运算