水平合并cv :: Mat

时间:2013-11-19 18:11:51

标签: c++ opencv ubuntu

我想合并一些cv::Mat,当我使用mat1.push_back(mat2)时,mat2垂直添加mat1,是否有办法横向执行此操作? 我能想到的唯一另一个选择是将每个cv::Mat变为cv::RotatedRect,旋转它,创建一个新的Mat,合并,以相同的方式最终旋转所有内容,但它如果有另一种方式,声音毫无意义

2 个答案:

答案 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);
相关问题