这里先举一个例子,把Opencv中的图像数据存储到一个void *data数据中
struct IMAGE_DATA
void *data; //图像数据
int rows; //图像高
int cols; //图像宽
int channels; //图像通道数
};
bool OpencvMat2data(cv::Mat &opencvMat,IMAGE_DATA &image_data)
{
bool bStatus = true;
image_data.cols = opencvMat.cols;
image_data.rows = opencvMat.rows;
image_data.channels = opencvMat.channels();
int imageLength = image_data.cols * image_data.rows * image_data.channels;
if(imageLength == 0)
return false;
image_data.data= malloc( imageLength * sizeof(unsigned char) );
if(image_data.data != NULL){
memcpy(image_data.data, opencvMat.data, imageLength);
bStatus = true;
}
else
bStatus = false;
return bStatus;
}
在对Opencv应用过程中也会应用到相应的android系统中,对于android系统而言,其从摄像头获取的图像文件格式为YUV420sp格式,后续为了更方便的运算我们把YUV