当前位置: 代码迷 >> 综合 >> openCV 小结1——论main()函数和Mat类
  详细解决方案

openCV 小结1——论main()函数和Mat类

热度:48   发布时间:2023-11-10 17:58:30.0

1.openCV万能头文件 #include<opencv2/opencv.hpp>

 常用头文件#include<opencv2/core/core.hpp>   、#include<opencv2/highgui/highgui.hpp>

2.int main(int argc,char **argv){}

   argc是用来统计程序运行时发送给main函数的命令行参数的个数;

   argv是用来存放指向字符串参数的指针数组,每一个元素指向一个参数,

             argv[0]指向程序运行的全路径名

             argv[1]指向在DOS命令行中执行程序名后的第一个字符串

             argv[n]指向在DOS命令行中执行程序名后的第n个字符串,其中n<argc

             argv[argc]为NULL

3.OpenCV中的C++类和函数都定义在命名空间cv之内,可以使用using namespace cv;

4.Mat类是用于保存图像以及其他矩阵数据的数据结构。

     Mat类有两部分组成:矩阵头和一个指向像素值矩阵的指针。

     Mat类的定义和初始化问题:定义仅创建矩阵头,拷贝和赋值运算仅复制矩阵头(矩阵头会有少量变化)和矩阵指针。

     多个Mat对象指向同一个数据矩阵,改变任何一个对象都会影响其他对象。

     如果想拷贝数据矩阵可以使用成员函数clone(),例如Mat F=A.clone();

5.显示创建Mat对象的几种方法:

  1.     Mat M(2,2,CV_8UC3,Scalar(0,0,255));
  2.     int sz[3]={2,3,2};  Mat L(3,sz,CV_8UC,Scalar::all(0));
  3.     Mat M;  M.create(4,4,CV_8UC2);
  4.     Mat E=Mat::eye(4,4CV_64F);//Mat O=Mat::ones(4,4,CV_32F);//Mat Z=Mat::zeros(4,4,CV_8UC1);
  5.     Mat C=(Mat_<double>(3,3)<<0,-1,0,-1,5,-1,0,-1,0);
  6.     Mat rowClone=C.row(0).clone();

 

 

  相关解决方案