OpenCV系列(四):矩阵操作

关于矩阵的操作,异常繁多,而且OpenCV提供的函数也相对很丰富,这里作一个简单的系统介绍,主要涉及矩阵的基本运算,矩阵的属性运算和一些其他常用操作。

矩阵基本运算

OpenCV提供了矩阵常用的一些操作包括矩阵的相加,相乘,逐元素相乘,逐元素相除,求逆等。

Mat类内部实现

设为A,B为Mat类型,s是Scalar类型,a是一个实数。下面列出关于Mat的常用运算:

  • 矩阵加减: A+B,A-B,A+s,A-s,s+A,s-A,-A.
  • 矩阵乘以实数: A*a,a*A
  • 逐元素乘除: A.mul(B),A/B,a/A
  • 矩阵乘法: A*BmaxVal; Point minPos,m
  • 矩阵倒置: A.t()
  • 矩阵的逆: A.inv()
  • 矩阵比较: A comp B,A comp a,a comp A。这里comp包括 >, >=,==,!=,<=,<。得出的结果是一个单通道8位的矩阵,元素的值为255或0。
  • 矩阵位操作: A logic B, A logic s,s logic A。这里logic包括:&,|,^
  • 向量的差乘和内积: A.cross(B),A.dot(B);

Read More