C++ 将矩阵向量(opencv)转换为c++;排列

C++ 将矩阵向量(opencv)转换为c++;排列,c++,arrays,C++,Arrays,我有一个由四个矩阵组成的向量Io(Io有m列和n行),我想创建一个大数组“结果”(c++数组,不是1D opencv向量,“结果”的长度应该是4*m*n),所有矩阵都被重塑为1D,它们的实体背靠背连接在一起 到目前为止,我就是这么做的。但我觉得有点长。如果有一个看起来更好的替代方案就好了 Mat Iotem1 = Io[0].reshape(0, 1); vector<float> vec1; Iotem1.copyTo(vec1); Mat Iotem2 = Io[1].resha

我有一个由四个矩阵组成的向量Io(Io有m列和n行),我想创建一个大数组“结果”(c++数组,不是1D opencv向量,“结果”的长度应该是4*m*n),所有矩阵都被重塑为1D,它们的实体背靠背连接在一起

到目前为止,我就是这么做的。但我觉得有点长。如果有一个看起来更好的替代方案就好了

Mat Iotem1 = Io[0].reshape(0, 1); vector<float> vec1; Iotem1.copyTo(vec1);
Mat Iotem2 = Io[1].reshape(0, 1); vector<float> vec2; Iotem2.copyTo(vec2);
Mat Iotem3 = Io[2].reshape(0, 1); vector<float> vec3; Iotem3.copyTo(vec3);
Mat Iotem4 = Io[3].reshape(0, 1); vector<float> vec4; Iotem3.copyTo(vec4); 
float * result = new float[4*data_SIZE];
vec1.insert(vec1.end(), vec2.begin(), vec2.end());
vec1.insert(vec1.end(), vec3.begin(), vec3.end());
vec1.insert(vec1.end(), vec4.begin(), vec4.end());
memcpy(result, &vec1[0], sizeof(int) * vec1.size());
Mat Iotem1=Io[0]。重塑(0,1);向量vec1;Iotem1.copyTo(vec1);
Mat Iotem2=Io[1]。重塑(0,1);向量vec2;Iotem2.copyTo(vec2);
Mat Iotem3=Io[2]。重塑(0,1);向量vec3;Iotem3.copyTo(vec3);
Mat Iotem4=Io[3]。重塑(0,1);向量vec4;Iotem3.copyTo(vec4);
浮点*结果=新浮点[4*数据大小];
插入(vec1.end(),vec2.begin(),vec2.end());
插入(vec1.end(),vec3.begin(),vec3.end());
插入(vec1.end(),vec4.begin(),vec4.end());
memcpy(result,&vec1[0],sizeof(int)*vec1.size());

您可以简单、安静地完成。你面临什么问题?嗨Tiib我编辑了我的问题。感谢使用这些“float*Iotem####u数组”,它们是未使用的,并且在循环中将所有内容放入vec1中。