在C++语言中使用Opencv4.9.0进行图像拼接
时间: 2024-09-22 13:01:52 浏览: 34
基于C++opencv实现全景图像拼接源码.zip
5星 · 资源好评率100%
在C++中使用OpenCV 4.9.0进行图像拼接,通常涉及到读取图片、调整图像大小、裁剪、合并等步骤。以下是一个简单的示例,展示了如何将两个图像水平或垂直拼接:
```cpp
#include <opencv2/opencv.hpp>
cv::Mat img1, img2; // 假设img1和img2已加载好
// 水平拼接
int widthSum = img1.cols + img2.cols;
cv::Mat result(widthSum, img1.rows, img1.type());
result(cv::Range(0, img1.rows), cv::Range(0, img1.cols)) = img1;
result(cv::Range(img1.cols, widthSum), cv::Range(0, img2.cols)) = img2;
// 或者垂直拼接
cv::Rect roi1(0, 0, img1.cols, img1.rows); // 第一个图像是原尺寸
cv::Rect roi2(img1.cols, 0, img2.cols, img2.rows); // 第二个图像是从第一个开始的位置
cv::Mat croppedImg2 = img2(roi2);
cv::copyTo(croppedImg2, result(roi1)); // 将第二个图象复制到结果矩阵的适当位置
cv::imshow("Image Mosaic", result);
cv::waitKey(0);
阅读全文