image - CvBOX2D处理

标签 image opencv

我已经通过一系列轮廓处理得到了我的 ROI(CvBOX2D 类型),现在我只想关注 ROI 内的图像部分,例如:将这部分输入另一个处理函数,我该怎么做?我知道有CvSetImageROI,但是类型是CvRect,所以我应该先把CvBox2D转换成CvRect?或者以某种方式在其上应用蒙版并将框外的区域设置为 0?

提前致谢!

最佳答案

OpenCV(CvRect 或 IplROI)直接支持轴对齐的 ROI。这是因为它们允许直接访问图像内存缓冲区。

在 OpenCV 中处理轴对齐的 ROI 有两种方法。它们都不如使用轴对齐的 ROI 那样有效。

  1. 旋转您的图像或边界框,以便您的 ROI 现在与生成的旋转图像中的轴对齐。
    注意:旋转会使您的图像稍微模糊。

  2. 使用掩码:将您的 ROI 绘制为与图像大小相同的黑色 BG 上的白色矩形,并将此掩码作为附加参数提供给您的处理函数。
    注意:并非所有函数都支持 mask 。

如果您确实必须保持在投资返回率的确切范围内,我会推荐选项 1。否则,只需使用边界矩形。

关于image - CvBOX2D处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4230572/

相关文章:

macos - OpenCV VideoWriter write() 函数在 C++ 中的 MAC 操作系统上失败

c++ - 在这种情况下,为什么编译器会抛出 “undefined reference to…”错误?

java - 使导入的图像适合面板

html - iOS 中的背景图片 repeat-x 不起作用

ios - 图像大小优化以减少数据使用

image - 如何编辑eps文件来更改字体?

c++ - 如何在 c 中的 opencv 2.3 编码中向序列添加元素

c++ - Opencv:如何计算矩形 vector 的镜像

ios - OpenCV iOS - 预期标识符(MACRO)

arrays - matlab中如何连接两个不同维度的图像