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*对象***需要手动释放内存***