opencv里面 怎么把多个Mat合成为一个Mat?例如有100个1行128列的矩阵,怎么合成一个100行128列的矩阵?求

大神指导?求代码 谢谢
2025-02-09 09:16:14
推荐回答(2个)
回答1:

#include
using namespace cv;
int main( int argc, char **argv )
{
//这个矩阵是合成矩阵
Mat combineMat;

//假设这个是即将有100个1行128列的vector
//具体的数据自己读入
vector vMatSet( 100 );

/*
这里读入数据到vMatSet里,每个vMatSet[i]都是一行128列,例如:
for( int i = 0; i < 100; ++i )
vMatSet[i] = imread( "图像文件" );
*/

//下面要将多个Mat合成到comineMat里
for( int i = 0; i < 100; ++i )
{
combineMat.push_back( vMatSet[i] );
}

return 0;
}

希望能帮到你!

回答2:

在Matlab中将两个矩阵合并非常方便,按行合并,如A=[B C]。按列合并如A=[B ;C]
OpenCV中有vconcat和hconcat函数,用于矩阵的合并与图像的拼接。
vconcat(B, C, A); // 等同于A=[B; C]
hconcat(B, C, A); // 等同于A=[B C]
写个循环,运用上面的vconcat函数,即可解决您的问题。