我想合并一些cv::Mat
,当我使用mat1.push_back(mat2)
时,mat2
垂直添加mat1
,是否有办法横向执行此操作?
我能想到的唯一另一个选择是将每个cv::Mat
变为cv::RotatedRect
,旋转它,创建一个新的Mat
,合并,以相同的方式最终旋转所有内容,但它如果有另一种方式,声音毫无意义
答案 0 :(得分:17)
看看hconcat和vconcat。
用法:
Mat M1,M2,HM,VM;
// M1 and M2 - source matrices
// HM,VM - results matrices
...
hconcat(M1,M2,HM); // horizontal concatenation
vconcat(M1,M2,VM); // vertical concatenation
注意,这些方法没有记录。
答案 1 :(得分:1)
有一种非常简单的方法可以并排显示两个图像。可以使用opencv提供的以下功能。
Mat image1, image2;
hconcat(image1,image2,image1);//Syntax->
hconcat(source1,source2,destination);
此功能还可用于将一组列从图像复制到另一个图像。
Mat image;
Mat columns=image.colRange(20,30);
hconcat(image,columns,image);