我已经通过一系列轮廓处理得到了我的 ROI(CvBOX2D 类型),现在我只想关注 ROI 内的图像部分,例如:将这部分输入另一个处理函数,我该怎么做?我知道有CvSetImageROI,但是类型是CvRect,所以我应该先把CvBox2D转换成CvRect?或者以某种方式在其上应用蒙版并将框外的区域设置为 0?
提前致谢!
最佳答案
OpenCV(CvRect 或 IplROI)直接支持轴对齐的 ROI。这是因为它们允许直接访问图像内存缓冲区。
在 OpenCV 中处理非轴对齐的 ROI 有两种方法。它们都不如使用轴对齐的 ROI 那样有效。
旋转您的图像或边界框,以便您的 ROI 现在与生成的旋转图像中的轴对齐。
注意:旋转会使您的图像稍微模糊。使用掩码:将您的 ROI 绘制为与图像大小相同的黑色 BG 上的白色矩形,并将此掩码作为附加参数提供给您的处理函数。
注意:并非所有函数都支持 mask 。
如果您确实必须保持在投资返回率的确切范围内,我会推荐选项 1。否则,只需使用边界矩形。
关于image - CvBOX2D处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4230572/