在 OpenCV 中清除(不裁剪)图像的非 ROI 部分

Posted

技术标签:

【中文标题】在 OpenCV 中清除(不裁剪)图像的非 ROI 部分【英文标题】:Clear (not crop) the non-ROI part of image in OpenCV 【发布时间】:2016-03-02 10:45:02 【问题描述】:

我有一个Mat,并且成功裁剪了 ROI(图像的下半部分)。但问题是,我希望图像的上半部分是空白的(白色),而下半部分是裁剪后的图像。这是我现有的代码 -

Rect imgROI(0, temporaryImage.size().height - (temporaryImage.size().height / 2), temporaryImage.size().width, temporaryImage.size().height / 2);
Mat croppedImage = temporaryImage(imgROI);

关于如何做到这一点的任何想法?

【问题讨论】:

【参考方案1】:

只需将上半部分的 ROI 设置为零:

  cv::Rect blankRoi(0, 0, temporaryImage.size().width, temporaryImage.size().height / 2);
  temporaryImage(blankRoi).setTo(cv::Scalar(0));

【讨论】:

以上是关于在 OpenCV 中清除(不裁剪)图像的非 ROI 部分的主要内容,如果未能解决你的问题,请参考以下文章

如何在 OpenCV c++ 中从图像中裁剪特定的矩形部分(ROI)

在 OpenCV 中选择图像的非矩形 ROI 的最有效方法是啥?

在 OpenCV 中自动检测和裁剪 ROI

如何在 Opencv 中使用 CgRect 裁剪图像。

使用opencv c ++裁剪视频中的ROI

OpenCV 人脸检测 ROI 断言失败