我有三个矩阵,每个大小为4x1
。我想将所有这些矩阵复制到另一个大小为4x3
的矩阵,并将其称为R
。有没有一个聪明的方法来做到这一点?如何在opencv中将3个矩阵合并为1?
3
A
回答
10
您可以使用hconcat进行水平连接。您可以在每个矩阵中使用它,例如hconcat(mat1,mat2,R),或直接将其应用于一个向量或矩阵数组。
下面是一个示例代码:
vector<Mat> matrices = {
Mat(4, 1, CV_8UC1, Scalar(1)),
Mat(4, 1, CV_8UC1, Scalar(2)),
Mat(4, 1, CV_8UC1, Scalar(3)),
};
Mat R;
hconcat(matrices, R);
cout << R << endl;
这里的结果:
[1, 2, 3;
1, 2, 3;
1, 2, 3;
1, 2, 3]
Program ended with exit code: 1
同样,如果您想(按行栈)垂直做到这一点,利用vconcat。
4
您可以使用
Mat R(3, 4, CV_32F); // [3 rows x 4 cols] with float values
mat1.copyTo(R.row(0));
mat2.copyTo(R.row(1));
mat3.copyTo(R.row(2));
或
Mat R(4, 3, CV_32F); // [4 rows x 3 cols] with float values
mat1.copyTo(R.col(0));
mat2.copyTo(R.col(1));
mat3.copyTo(R.col(2));
另外,作为@sub_o建议,你也可以使用hconcat()/vconcat()
来连接矩阵。
相关问题
- 1. [解决]如何在C 5个矩阵合并++/OpenCV的
- 2. 在Eigen中,如何将多个映射矩阵组合为矩阵阵列
- 3. MySQL将3个表合并为1
- 4. 将3个SQL查询合并为1
- 5. 如何将多个矩阵帧合并为一个使用R?
- 6. 3 JS几何合并矩阵
- 7. 使用ggplot2将3个矩阵转换为1个地图
- 8. C#将1 x 3矩阵转换为3 x 3矩阵,并带有特殊条件
- 9. 将1个矩阵转换为多个矩阵
- 10. 如何将3个结果合并为1 foreach(PHP html DOM)
- 11. 如何合并的顺序3 * 3四个矩阵中的6阶一次矩阵* 6
- 12. 在matlab中合并两个矩阵
- 13. 将3变量合并为1
- 14. 如何合并元素在矩阵
- 15. 将矩阵转换为1维阵列
- 16. 在OpenCV中将矩阵转换为阵列/向量
- 17. 如何在sqlCE中将2个表合并为1个表?
- 18. 如何使用opencv将图像转换为Python中的矩阵
- 19. 在PHP中合并3个阵列为3d阵列
- 20. 将列表合并到矩阵中
- 21. 将openCV矩阵转换为矢量
- 22. 如何将由for循环输出的矩阵合并为r
- 23. 如何在1个查询中合并3个表格
- 24. Tensorflow:我如何将3D矩阵组合为一个整体矩阵?
- 25. 如何加载一个txt/.pgn.camera文件并将其存储在矩阵C++/opencv
- 26. 在OpenCV中使用子矩阵制作一个大矩阵
- 27. 在opencv中划分两个矩阵
- 28. 如何在matlab中合并两个不同尺寸的矩阵
- 29. 合并矩阵R
- 30. 如何在MATLAB中将灰度矩阵转换为RGB矩阵?
如果mat1是在循环中获得,我必须在矩阵R中断言,即如果循环3获得mat1的3倍值并且必须在矩阵4的R中断言,该怎么办? – user3528954
@ user3528954您想在运行时确定'mat1'的大小吗? – herohuyongtao