gpt4 book ai didi

c++ - 将 vector 转换为 vector 文件 Opencv

转载 作者:行者123 更新时间:2023-11-28 02:37:17 25 4
gpt4 key购买 nike

如何将 Mat 文件的 vector 转换为 Mat 文件?我有一个大小为 N 的 vector 。每个 mat 文件的大小为 1xM。我想创建一个大小为 1xNM 的新 Mat 文件?我怎样才能在 Opencv 中这样做?或者更好地创建一个大小为 MN 的新 vector ,它将包含每个 Mat 文件的像素。 Opencv中有 reshape 功能吗?

   Mat flat;       // output

for (size_t i=0; i<patch_image.size(); i++)
{
// you said, those would be 1xM, but let's make sure.
flat.push_back( patch_image[i].reshape(1,1) );
}

flat = flat.reshape(1,1);

int temp;
for(int i=0; i<flat.rows; i++){
for(int j=0; j<flat.cols; j++){

temp = (int)flat.at<uchar>(i,j);
cout << temp << "\t";
}
cout << endl;
}

然而,对 int temp 的分配似乎有效。

最佳答案

是的,有一个reshape功能。

vector<Mat> vm; // input
Mat flat; // output

for (size_t i=0; i<vm.size(); i++)
{
// you said, those would be 1xM, but let's make sure.
flat.push_back( vm[i].reshape(1,1) );
}

flat = flat.reshape(1,1); // all in one row, 1xN*M now

请注意,reshape 返回一个新的 Mat header ,inplace 它不起作用(这里常见的陷阱!)

关于c++ - 将 vector <Mat> 转换为 vector 文件 Opencv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27057039/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com