opencv学习日常之Mat的代数运算

opencv 矩阵的代数运算,

注意点:
Mat m0,m1,m2;
m2 = m1 和 m2 = m0 +m1;

  1. m2 = m1 : 两个矩阵的data指针指向同一块数据域
  2. m2 = m0+m1: 首先 m0 和m1对应的位置相加,然后为m2重新开辟数据域存储新的数据

Mat的代数运算如下列表:

**m0 + m1, m0 – m1;**   // Addition or subtraction of matrices

**m0 + s; m0 – s; s + m0, s – m1**; //Addition or subtraction     //between a matrix and a singleton

**-m0**; //Negation of a matrix

**s * m0; m0 * s;** // Scaling of a matrix by a singleton

**m0.mul( m1 ); m0/m1;**// Per element multiplication of m0 and m1,
//per-element division of m0 by m1,(对应元素相乘和相除)

**m0 * m1;** //Matrix multiplication of m0 and m1 矩阵乘法

**m0.inv( method );** //Matrix inversion of m0 (default value of
   //method is DECOMP_LU) 逆矩阵


**m0>m1; m0>=m1; m0==m1; m0<=m1; m0<m1;** //Per element comparison, //returns uchar matrix with elements 0 or 255

**m0&m1; m0|m1; m0^m1; ~m0;**
**m0&s; s&m0; m0|s; s|m0; m0^s; s^m0;**//Bitwise logical operators //between matrices or matrix and a singleton

**min(m0,m1); max(m0,m1); min(m0,s);**
**min(s,m0); max(m0,s); max(s,m0);**//Per element minimum and //maximum between two matrices or a matrix and a singleton

**cv::abs( m0 );**// Per element absolute value of m0

**m0.cross( m1 ); m0.dot( m1 );**//Vector cross and dot product //(vector cross product is only defined for 3-by-1 matrices)

**cv::Mat::eye( Nr, Nc, type );** //Class static matrix //initializers that return

其中有个小数学知识需要回顾下:

向量的叉乘和点乘

向量 a = (a1,b1,c1) b = (a2,b2,c2);
点乘: a.b = ( a1a2+b1b2+c1c2)
叉乘:
axb =
i, j , k
a1, b1 , c1
a2, b2 , c2
= (b1c2-b2c1,c1a2-a1c2,a1b2-a2b1)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值