opencv从内存中读取图片

opencv从内存中读取图片可以大大减少读取文件所消耗的时间。

CvMat中的data数据只是矩阵数据的首地址,分配的内存大小为行列乘积。对该内存块的操作需要调用函数,也可以使用指针索引。

CvMat mCvmat = cvMat(w, h, CV_8UC1, Data);//参数分别为(图片宽度,高度,类型,data)
                                          //data数据只是矩阵数据的首地址,分配的内存大小为行列乘积
                                          //这个构造函数并没有从新分配内存

IplImage* IpImg = cvDecodeImage(&mCvmat, 1);

Mat image = cvarrToMat(IpImg);  //IplImage到Mat类型转换

if (!image.data)
{
    return false;
}
cvReleaseImage(&IpImg);          //cvDecodeImage产生的IplImage*对象***需要手动释放内存***
原文地址:https://www.cnblogs.com/roscangjie/p/11055328.html