文章目录
- eigen
- Matrix
- 基础
- 例
- 编译时固定尺寸
- 运行指定大小
 
 
 
- OpenCV
- 概述
 
eigen
Matrix
基础
- 所有矩阵和向量都是Matrix模板类的对象。
- 向量也是矩阵,单行或单列。
- Matrix模板类6个参数,常用就3个参数,其它3个参数有默认值。
Matrix<typename Scalar, int RowsAtCompileTime, int ColsAtCompileTime>
分别是元素标量类型,编译时行数和列数
 -下面定义float类型元素,4*5的矩阵
typedef Matrix<float, 4, 4> Matrix4f;
- 4*1列 向量
typedef Matrix<float, 4, 1> Vector3f;
- 1*2行向量
typedef Matrix<int, 1, 2> RowVector2i;
- 运行时再指定维度
typedef Matrix<double, Dynamic, Dynamic> MatrixXd;
typedef Matrix<int, Dynamic, 1> VectorXi;
//只指定行
Matrix<float, 3, Dynamic>
MatrixXf a(10,15);
VectorXf b(30);
- 初始化元素
Vector2i a(1, 2);                      
Matrix<int, 5, 1> b {1, 2, 3, 4, 5};   
Matrix<int, 1, 5> c = {1, 2, 3, 4, 5}; 
例
编译时固定尺寸
- Matrix4f
#include <iostream>
#include "f:/learn/eigen-3.4.0/Eigen/Dense"
using Eigen::Matrix4f;
int main()
{
  Matrix4f m = Matrix4f::Random();
  std::cout << m << std::endl;
}
 -0.997497   0.170019    0.64568   0.421003
  0.127171 -0.0402539    0.49321  0.0270699
 -0.613392  -0.299417  -0.651784   -0.39201
  0.617481   0.791925   0.717887  -0.970031
Process returned 0 (0x0)   execution time : 0.099 s
Press any key to continue.
- Vector3f
#include <iostream>
#include "f:/learn/eigen-3.4.0/Eigen/Dense"
using Eigen::Vector3f;
int main()
{
  Vector3f m = Vector3f::Random();
  std::cout << m << std::endl;
}
-0.997497
 0.127171
-0.613392
Process returned 0 (0x0)   execution time : 0.103 s
Press any key to continue.
- RowVector2i
#include <iostream>
#include "f:/learn/eigen-3.4.0/Eigen/Dense"
using Eigen::RowVector2i;
int main()
{
  RowVector2i m = RowVector2i::Random();
  std::cout << m << std::endl;
}
-16343   2083
Process returned 0 (0x0)   execution time : 0.091 s
Press any key to continue.
- 指定大小
 6*6的矩阵
#include <iostream>
#include "f:/learn/eigen-3.4.0/Eigen/Dense"
using Eigen::Matrix;
typedef Matrix<int,6,6> Matrix6i;
int main()
{
  Matrix6i m = Matrix6i::Random();
  std::cout << m << std::endl;
}
-16343  -4906   6897 -11557 -16092 -10937
  2083  12974    443 -10948  -4002   5342
-10050  10578  -6423  16007   1037  -1613
 10116   8080 -15893  -1780   2332  -4846
  2785 -10679 -13389 -12482   3334 -14515
  -660  11761  -4442 -16231   3511   3528
Process returned 0 (0x0)   execution time : 0.101 s
Press any key to continue.
运行指定大小
- double型元素
#include <iostream>
#include "f:/learn/eigen-3.4.0/Eigen/Dense"
using Eigen::MatrixXf;
int main()
{
  MatrixXf m = MatrixXf::Random(3,3);
  std::cout << m << std::endl;
}
 -0.997497   0.617481  -0.299417
  0.127171   0.170019   0.791925
 -0.613392 -0.0402539    0.64568
Process returned 0 (0x0)   execution time : 0.099 s
Press any key to continue.
- int型元素
#include <iostream>
#include "f:/learn/eigen-3.4.0/Eigen/Dense"
using Eigen::MatrixXi;
int main()
{
  MatrixXi m = MatrixXi::Random(3,3);
  std::cout << m << std::endl;
}
-16343  10116  -4906
  2083   2785  12974
-10050   -660  10578
Process returned 0 (0x0)   execution time : 0.098 s
Press any key to continue.
- 指定元素值
#include <iostream>
#include "f:/learn/eigen-3.4.0/Eigen/Dense"
using Eigen::Vector2i;
using Eigen::Matrix;
int main()
{
    Vector2i a(1, 2);
    Matrix<int, 5, 1> b {1, 2, 3, 4, 5};
    Matrix<int, 1, 5> c = {1, 2, 3, 4, 5};
    std::cout << a<< std::endl;
    std::cout << b<< std::endl;
    std::cout << c<< std::endl;
}
1
2
1
2
3
4
5
1 2 3 4 5
Process returned 0 (0x0)   execution time : 0.094 s
Press any key to continue.
OpenCV
概述
- OpenCV(开源计算机视觉库:http://opencv.org)是一个开源库,包含数百种计算机视觉算法。
- 操作均是在windows下,所以从下面链接下载安装包:
 https://github.com/opencv/opencv/releases/latest
  



















