首页 > 代码库 > 团队小学期9

团队小学期9

  我们团队的最重要的一部分是人脸的识别,通过摄像头检测人的各项信息。我们采用的技术是OpenCV。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。

  Mat 是OpenCV中最主要的一个类,由两个数据部分组成:矩阵头(包含矩阵尺寸,存储方法,存储地址等信息)和一个指向存储所有像素值的矩阵(根据所选存储方法的不同矩阵可以是不同的维数)的指针。通过Mat的构造函数可以创建一个Mat对象,如

  Mat M(2,2,CV_8UC3,Scalar(0,0,255));

  还有几个可以遍历Mat的函数

    M.row; // 返回图像行数

    M.nCols;  // 返回图像列数

    M.channels();  //返回通道数
    M.isContinuous(); // 返回bool类型表示是否连续存储

  调用函数 randu() 来对一个矩阵使用随机数填充,需要指定随机数的上界和下界:

    Mat R = Mat(3, 2, CV_8UC3);

    randu(R, Scalar::all(0), Scalar::all(255));

  OpenCV支持使用运算符<<来打印其它常用OpenCV数据结构。如

    Point2f P(5, 1); cout << "Point (2D) = " << P << endl << endl;

    Point3f P3f(2, 6, 7);cout << "Point (3D) = " << P3f << endl << endl;

  OpenCV为图像的处理提供了一系列的标准的接口,简化计算机视觉程序和解决方案的开发。

 

团队小学期9