OpenCV——数据结构Mat

来源:互联网 发布:map 转换json数组 编辑:程序博客网 时间:2024/04/29 08:35

Mat类是对内存进行动态的管理。
这个类有两部分数据:一个是matrix header,这部分的大小是固定的,包含矩阵的大小,存储的方式,矩阵存储的地址等等。另一个部分是一个指向矩阵包含像素值的指针。
数据的存储:

Mat_<uchar> 对应   CV_8UMat_<uchar> 对应   CV_8UMat_<char>  对应   CV_8SMat_<int>   对应   CV_32SMat_<float> 对应   CV_32FMat_<double>对应   CV_64F

对于外来的数据,比如从别的地方接受了一幅图片,但可以不是Mat结构的,而只有一个数据的指针,代码如下:

    void process_video_frame(const unsigned char* pixels,      int width, int height, int step)      {      Mat img(height, width, CV_8UC3, pixels, step);      GaussianBlur(img, img, Size(7,7), 1.5, 1.5);      }  

也可以把原来的IplImage格式的图片直接用Mat(IplImage)的方式转成Mat结构,也可以像Matlab一样调用zeros()、ones()、eye()这样的函数进行初始化。

原创粉丝点击