接受外来图片数据,创建Mat矩阵的几种方法

来源:互联网 发布:ar口袋动物园软件 编辑:程序博客网 时间:2024/06/01 14:04

一。

对于外来的数据,比如你从别的地方接受了一幅图片,但可以不是Mat结构的,而只有一个数据的指针,看看接下来的代码是如何应付的,重点哦,亲

  1. void process_video_frame(const unsigned char* pixels, 
  2. int width, int height, int step)  
  3. {  
  4. Mat img(height, width, CV_8UC3, pixels, step);  
  5. GaussianBlur(img, img, Size(7,7), 1.5, 1.5);  
  6. }  

CV_8UC3;3通道;

step意义未知?


二、

  1. //【2】为已经存在的IplImage指针创建信息头  
  2.     //Mat(const IplImage* img, bool copyData=false);  
  3.   
  4.     IplImage* img=cvLoadImage("D:\\scenery.png",CV_LOAD_IMAGE_COLOR);  
  5.     Mat mtx(img);                                           //convert Iplimage*--->Mat  
  6.     imshow("【1】IplImage*载入的原始图片",mtx);  

  1. //【1】使用Mat的构造函数---创建矩阵  
  2.     //Mat(int rows, int cols, int type, const Scalar& s);  
  3.   
  4.     Mat M(2,2,CV_8UC3,Scalar(0,0,255));                    //指定矩阵的大小和类型,并用指定的数据进行填充  
  5.     cout<<"M="<<endl<<" "<<M<<endl;  
【0,0,255, 0,0,255

  0,0,255,0,0,255

0 0