在对图像进行处理过程中,我们经常需要对图像的某个或多个感兴趣区域进行处理。在OpenCV中我们能够非常方便地获取指定ROI区域的子图像。下面这段代码就演示了怎样获取指定单个ROI或多个ROI图像区域。

    1. //  复制一个或多个ROI图像区域
    2. //  Author:  www.icvpr.com
    3. //  Blog: http://blog.csdn.net/icvpr
    4. #include <iostream>
    5. #include <vector>
    6. #include <opencv2/opencv.hpp>
    7. int main()
    8. {
    9. cv::Mat srcImage = cv::imread("../test.jpg");
    10. // 保存一个ROI图像区域
    11. cv::Mat roiImage;
    12. cv::Rect rect(100, 100, 100, 100);
    13. srcImage(rect).copyTo(roiImage);
    14. cv::imshow("roi", roiImage);
    15. cv::imwrite("roi.jpg", roiImage);
    16. cv::waitKey(0);
    17. // 保存多个ROI图像区域
    18. std::vector<cv::Rect> rects;
    19. for (size_t i = 0; i < 4; i++)
    20. {
    21. rects.push_back(cv::Rect(i*10, i*10, 50, 50));
    22. }
    23. std::vector<cv::Mat> subImages;
    24. for(int i = 0; i < rects.size(); i++)
    25. {
    26. cv::Mat tempImg;
    27. srcImage(rects[i]).copyTo(tempImg);
    28. subImages.push_back(tempImg);
    29. cv::imwrite("roi.jpg", subImages[i]);
    30. cv::imshow("subImage", subImages[i]);
    31. cv::waitKey(0);
    32. }
    33. return 0;
    34. }

最新文章

  1. [.net 面向对象程序设计进阶] (18) 多线程(Multithreading)(三) 利用多线程提高程序性能(下)
  2. [转载]用 grub2 启动 clover.iso 来启动 OS X
  3. xheditor编辑器的使用
  4. HDU 5001
  5. 数组排序-冒泡排序-选择排序-插入排序-希尔排序-快速排序-Java实现
  6. django笔记
  7. JS初学的一些易错的知识点
  8. trunc的使用
  9. 【M25】将构造方法和非成员方法虚化
  10. ajax 分页控件,基于jquery
  11. SCOI2014省选总结
  12. C++惯用法:通过成员模板实现隐式转换(Coercion 强迫 by Member Template)
  13. java 分页模型的模板
  14. SpringMVC总结
  15. 性能测试系列-java gc调优
  16. Spring 事件
  17. MongoDB可视化工具--Robo 3T 使用教程
  18. 架构探险笔记3-搭建轻量级Java web框架
  19. ubuntu 17.10.1 安装 virtual box 增强工具
  20. MCU_头文件编写

热门文章

  1. windows 查看端口占用和杀死进程
  2. 关于.ssh出错,无法从远程git仓库拉代码
  3. 011_linuxC++之_继承的引入
  4. JAVA编程思想第二章答案
  5. django 快速搭建blog(三)
  6. redis 数据类型详解 以及 redis适用场景场合(滴滴)
  7. Netfilter 之 连接跟踪的helper
  8. Python关于File学习过程
  9. 软工-js learning
  10. Beta冲刺(2/5)