Opencv中如何将两幅图像连接成一幅图像(Mat操作)

来源:互联网 发布:淘宝互评后多久能看到 编辑:程序博客网 时间:2024/05/17 02:42

问题如下:

1、定义两幅图像Mat image1image2,假设两幅图像同样大小

2、定义一幅图像Mat result,要将image1image2连接到一起放到result中,假设image1image2左右排列

//读取两幅图像
Mat image_one=imread("1.jpg");Mat image_two=imread("2.jpg");
//创建连接后存入的图像,两幅图像按左右排列,所以列数+1Mat result(image_one.rows,image_one.cols+image_two.cols+1,image_one.type());
//图像拷贝,不能用Mat中的clone和copyTo函数,单幅图像拷贝可用,clone和copyTo不仅拷贝图像数据,还拷贝一///些其他的信息
//而现在是将两幅图像的数据拷贝到一副图像中,只拷贝图像数据
//因此用colRange来访问图像的列数据colRange第一参数是起始列,是从0开始索引,而第二个参数是结束列,
//从1开始索引,与我们以前使用的不同,因此,参数分别为0和image_one.colsimage_one.colRange(0,image_one.cols).copyTo(result.colRange(0,image_one.cols));
//第二幅图像拷贝,中间的一行作为两幅图像的分割线image_two.colRange(0,image_two.cols).copyTo(result.colRange(image_one.cols+1,result.cols));imshow("result",result);waitKey(0);






0 0