• OpenCV(十四):ROI区域截取


    OpenCV中,你可以使用Rect对象或cv::Range来截取图像的感兴趣区域(Region of Interest,ROI)。

    方法一:使用Rect对象截取图像

    Rect_(_Tp _x, _Tp _y, _Tp _width,_Tp _height)

    • Tp:数据类型,C++模板特性,可以用int、double、float等替换。
    • _x:矩形区域左上角第一个像素的x坐标,也就是第一个像素的列数。
    • _y:矩形区域左上角第一个像素的y坐标,也就是第一个像素的行数。
    • _width:矩形的宽,单位为像素,即矩形区域跨越的列数。
    • _height:矩形的高,单位为像素,即矩形区域跨越的行数。

    示例:

    1. // 定义ROI矩形区域
    2. int x = 0;
    3. int y = 0;
    4. int width = 1000;
    5. int height = 2000;
    6. // 根据ROI定义的区域截取图像
    7. cv::Rect roiRect(x, y, width, height);
    8. cv::Mat roi = image(roiRect);
    9. // 显示截取图像结果
    10. imwrite("/sdcard/DCIM/image.jpg",image);
    11. imwrite("/sdcard/DCIM/roi.jpg",roi);

    在这个示例中,我们首先读取一张图像image。然后,我们定义ROI矩形区域,其中x和y表示矩形左上角的坐标,宽度为1000,高度为2000。接下来,我们使用这个矩形对象来从原始图像中截取ROI区域,并将其存储在名为roicv::Mat对象中。最后,我们使用cv::imwrite()函数来获取原始图像和截取的ROI。

           

    (原始图像)                                 (截取的ROI)

    方法二:使用cv::Range截取图像的行或列范围

    cv::Range::Range ( int start

    int  end

    • start:区间的起始(包含)
    • end:区间的结束(不包含)

    示例:

    1. // 定义截取范围
    2. int startRow = 0;
    3. int endRow = 2000;
    4. int startCol = 0;
    5. int endCol = 2000;
    6. // 使用cv::Range截取图像范围
    7. cv::Range rowRange(startRow, endRow);
    8. cv::Range colRange(startCol, endCol);
    9. cv::Mat roi = image(rowRange, colRange);
    10. // 显示截取图像结果
    11. imwrite("/sdcard/DCIM/image.jpg",image);
    12. imwrite("/sdcard/DCIM/roi.jpg",roi);

    在这个示例中,我们同样首先读取一张图像Image。然后,我们使用rowRange()colRange()函数来分别截取图像的行范围和列范围。在rowRange()函数中,指定了截取行的起始行号为0,结束行号为2000;而在colRange()函数中,指定了截取列的起始列号为0,结束列号为2000。最后,我们使用cv::imwrite()函数来显示原始图像和截取的ROI。

            

    (原始图像)                                 (截取的ROI)

    无论你选择使用Rect对象还是cv::Range来截取图像,都能实现相同的效果。根据具体需求,你可以选择适合的方法进行图像截取。

  • 相关阅读:
    华为交换机基础配置(telnet/ssh登录)
    专家建议|8大措施加速你的创新职业规划和成长
    亚马逊气候友好型承诺所有认证
    http是什么?http的基础知识教程详解(2024-04-24)
    大数据培训教程Shuffle机制
    linux添加一条到中间路由器的路由
    2022.08.16 java学习
    百利天恒更新招股书:上半年收入约3亿元,持续加大研发投入
    电极的制作方法详解
    第十章 Linux权限升级
  • 原文地址:https://blog.csdn.net/weixin_63357306/article/details/132639974