OpenCV(十四):ROI区域截取 迈不过友情╰ 2024-03-09 07:41 134阅读 0赞 在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:矩形的高,单位为像素,即矩形区域跨越的行数。 示例: // 定义ROI矩形区域 int x = 0; int y = 0; int width = 1000; int height = 2000; // 根据ROI定义的区域截取图像 cv::Rect roiRect(x, y, width, height); cv::Mat roi = image(roiRect); // 显示截取图像结果 imwrite("/sdcard/DCIM/image.jpg",image); imwrite("/sdcard/DCIM/roi.jpg",roi); 在这个示例中,我们首先读取一张图像image。然后,我们定义ROI矩形区域,其中x和y表示矩形左上角的坐标,宽度为1000,高度为2000。接下来,我们使用这个矩形对象来从原始图像中截取ROI区域,并将其存储在名为`roi`的`cv::Mat`对象中。最后,我们使用`cv::imwrite()`函数来获取原始图像和截取的ROI。 ![60b142cdd53440fdb4f0f45b0ecd6018.jpeg][] ![83d72afcf87842f1803ef43f0cc5f40a.jpeg][] (原始图像) (截取的ROI) #### 方法二:使用cv::Range截取图像的行或列范围 #### > cv::Range::Range ( int start > > int end > > ) * start:区间的起始(包含) * end:区间的结束(不包含) 示例: // 定义截取范围 int startRow = 0; int endRow = 2000; int startCol = 0; int endCol = 2000; // 使用cv::Range截取图像范围 cv::Range rowRange(startRow, endRow); cv::Range colRange(startCol, endCol); cv::Mat roi = image(rowRange, colRange); // 显示截取图像结果 imwrite("/sdcard/DCIM/image.jpg",image); imwrite("/sdcard/DCIM/roi.jpg",roi); 在这个示例中,我们同样首先读取一张图像Image。然后,我们使用`rowRange()`和`colRange()`函数来分别截取图像的行范围和列范围。在`rowRange()`函数中,指定了截取行的起始行号为0,结束行号为2000;而在`colRange()`函数中,指定了截取列的起始列号为0,结束列号为2000。最后,我们使用`cv::imwrite()`函数来显示原始图像和截取的ROI。 ![60b142cdd53440fdb4f0f45b0ecd6018.jpeg][] ![9805d94a55204b779588926e21141f79.jpeg][] (原始图像) (截取的ROI) 无论你选择使用Rect对象还是cv::Range来截取图像,都能实现相同的效果。根据具体需求,你可以选择适合的方法进行图像截取。 [60b142cdd53440fdb4f0f45b0ecd6018.jpeg]: https://img-blog.csdnimg.cn/60b142cdd53440fdb4f0f45b0ecd6018.jpeg [83d72afcf87842f1803ef43f0cc5f40a.jpeg]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/09/b492cd3706104199acdf94f8da6788db.png [9805d94a55204b779588926e21141f79.jpeg]: https://img-blog.csdnimg.cn/9805d94a55204b779588926e21141f79.jpeg
还没有评论,来说两句吧...