opencv里面 怎么把多个Mat合成为一个Mat?例如有100个1行128列的矩阵,怎么合成一个100行128列的矩阵?求
发布网友
发布时间:2022-05-14 02:52
我来回答
共2个回答
热心网友
时间:2023-11-27 00:26
#include <opencv2/opencv.hpp>
using namespace cv;
int main( int argc, char **argv )
{
//这个矩阵是合成矩阵
Mat combineMat;
//假设这个是即将有100个1行128列的vector<Mat>
//具体的数据自己读入
vector<Mat> 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;
}
希望能帮到你!
热心网友
时间:2023-11-27 00:26
在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函数,即可解决您的问题。