问题如下:
1、定义两幅图像Mat image1,image2,假设两幅图像同样大小
2、定义一幅图像Mat result,要将image1和image2连接到一起放到result中,假设image1,image2左右排列
//读取两幅图像Mat image_one=imread("1.jpg");
Mat image_two=imread("2.jpg");//创建连接后存入的图像,两幅图像按左右排列,所以列数+1
Mat 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.cols
image_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);
图像拼接技术详解
本文详细介绍了如何使用OpenCV库中的Mat类实现两幅图像的水平拼接。首先定义了两幅同样大小的图像image1和image2,然后创建了一个新的Mat对象result用于存放拼接后的图像。通过colRange方法精确地将两幅图像的数据拷贝到result中,并在两幅图像间添加了一列作为分割线,最后展示了拼接后的图像。
6980

被折叠的 条评论
为什么被折叠?



