您的当前位置:首页正文

opencv之uchar*转为Mat类型

来源:华佗健康网

项目中遇到需要将uchar*数据流转换为Mat类型进行处理,以此记录一下。

一、cv::imdecode函数

Reads an image from a buffer in memory.

#include <opencv2/imgcodecs.hpp>

Mat cv::imdecode	(	InputArray 	buf,
                        int 	flags 
)		

Mat cv::imdecode	(	InputArray 	buf,
                        int 	flags,
                        Mat * 	dst 
)	

函数参数:

InputArray buf: 可以是Mat、Mat_<T>、Mat_<T, m, n>、vector<T>、vector<vector<T>>、  vector<Mat>等类型数据

int flag:    同imread的flag。

Mat *dst:    指定读取后图像指针,可不用。

二、使用imdecode

        因为imdecode函数不支持uchar*数据,所以使用前应将数据进行转换,这里我转为vector<unsigned char>类型。

unsigned char* pData;
unsigned int dataLen=100;        //获取的数据流已知长度

vector <unsigned char> vec (pData,pData+datalen);
cv::Mat img=cv::imcode(vec,cv::IMREAD_COLOR);

因篇幅问题不能全部显示,请点此查看更多更全内容