你可以使用OpenCV库来实现这个任务。下面是一个基本的示例代码,可以帮助你完成图像裁剪和拼接操作:
#include <opencv2/opencv.hpp>
int main() {
// 读取原图
cv::Mat originalImage = cv::imread("original_image.jpg");
// 定义裁剪后图像的尺寸
int croppedWidth = originalImage.cols / 2;
int croppedHeight = originalImage.rows;
// 定义两个感兴趣区域(ROI)矩形框
cv::Rect roi1(0, 0, croppedWidth, croppedHeight);
cv::Rect roi2(croppedWidth, 0, croppedWidth, croppedHeight);
// 创建两个空白的输出图像,大小为裁剪后的尺寸
cv::Mat croppedImage1(croppedHeight, croppedWidth, CV_8UC3);
cv::Mat croppedImage2(croppedHeight, croppedWidth, CV_8UC3);
// 裁剪并拷贝感兴趣区域到对应的输出图像中
originalImage(roi1).copyTo(croppedImage1);
originalImage(roi2).copyTo(croppedImage2);
// 创建新的输出图像,大小为拼接后的尺寸
int mergedWidth = croppedWidth * 2;
int mergedHeight = croppedHeight;
cv::Mat mergedImage(mergedHeight, mergedWidth, CV_8UC3);
// 将两张小图拷贝到新的输出图像中
croppedImage1.copyTo(mergedImage(cv::Rect(0, 0, croppedWidth, croppedHeight)));
croppedImage2.copyTo(mergedImage(cv::Rect(croppedWidth, 0, croppedWidth, croppedHeight)));
// 显示拼接后的图像
cv::imshow("Merged Image", mergedImage);
cv::waitKey(0);
return 0;
}
请确保你已经安装了OpenCV库并将原始图像文件(名为original_image.jpg)放置在当前工作目录中。你可以根据需要调整裁剪尺寸和输出图像的大小。运行程序后,将会显示拼接后的图像。
注意:这只是一个基本示例,如果你有特定需求或更复杂的场景,可能需要进一步调整代码。
内容由零声教学AI助手提供,问题来源于学员提问