ZBLOG

c++ opencv 从一张1280x720原图,裁剪出两张小图拼接成一张图,通过图像的平移实现两个截图拼接

你可以使用OpenCV库来实现这个任务。下面是一个基本的示例代码,可以帮助你完成图像裁剪和拼接操作:

  1. #include <opencv2/opencv.hpp>
  2. int main() {
  3. // 读取原图
  4. cv::Mat originalImage = cv::imread("original_image.jpg");
  5. // 定义裁剪后图像的尺寸
  6. int croppedWidth = originalImage.cols / 2;
  7. int croppedHeight = originalImage.rows;
  8. // 定义两个感兴趣区域(ROI)矩形框
  9. cv::Rect roi1(0, 0, croppedWidth, croppedHeight);
  10. cv::Rect roi2(croppedWidth, 0, croppedWidth, croppedHeight);
  11. // 创建两个空白的输出图像,大小为裁剪后的尺寸
  12. cv::Mat croppedImage1(croppedHeight, croppedWidth, CV_8UC3);
  13. cv::Mat croppedImage2(croppedHeight, croppedWidth, CV_8UC3);
  14. // 裁剪并拷贝感兴趣区域到对应的输出图像中
  15. originalImage(roi1).copyTo(croppedImage1);
  16. originalImage(roi2).copyTo(croppedImage2);
  17. // 创建新的输出图像,大小为拼接后的尺寸
  18. int mergedWidth = croppedWidth * 2;
  19. int mergedHeight = croppedHeight;
  20. cv::Mat mergedImage(mergedHeight, mergedWidth, CV_8UC3);
  21. // 将两张小图拷贝到新的输出图像中
  22. croppedImage1.copyTo(mergedImage(cv::Rect(0, 0, croppedWidth, croppedHeight)));
  23. croppedImage2.copyTo(mergedImage(cv::Rect(croppedWidth, 0, croppedWidth, croppedHeight)));
  24. // 显示拼接后的图像
  25. cv::imshow("Merged Image", mergedImage);
  26. cv::waitKey(0);
  27. return 0;
  28. }

请确保你已经安装了OpenCV库并将原始图像文件(名为original_image.jpg)放置在当前工作目录中。你可以根据需要调整裁剪尺寸和输出图像的大小。运行程序后,将会显示拼接后的图像。

注意:这只是一个基本示例,如果你有特定需求或更复杂的场景,可能需要进一步调整代码。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=17859

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?