是否可以使用OpenCV在框架中存在多个感兴趣区域时执行博客检测?
我一直在阅读基于1.x'C'API的'Learning OpenCV'一书,我意识到IplImage中的ROI信息可以作为单个ROI,因此所有操作都将采用单一ROI。这是否意味着我无法使用多个ROI?
我对多重投资回报的要求源于减少处理的愿望,而我确信我感兴趣的斑点恰好只占总图像区域的30-40%,分为3-4个区域。在整个图像上操作意味着在处理能力/时间方面的开销为60-70%。或者,我在这里遗漏了一些非常基本的东西吗?
编辑:
在SA上发现this问题,看起来这可能是一种方法。如果我理解正确,我可以在整个帧上使用掩码,取消屏蔽多个ROI,但不在IplImage中使用ROI本身。是对的吗 ?另外,这是否符合我降低处理要求的目的,这是我使用ROI背后的主要目标?
答案 0 :(得分:1)
在您的情况下,我认为您可以一次设置一个ROI,并为每个ROI执行blob检测。请记住,生成的坐标位于子图像空间中,您可能希望将它们转换回原始图像空间。我个人认为有用的一件事:通常ROI不是内存连续的,如果ROI的大小与原始图像相比非常小,将ROI复制为另一个图像并在该单个图像上运行算法可能会更快,例如:
for (int i = 0;i < numRects; ++i) {
cv::Mat subImg = img(rects[i]).clone();
blobDetection(subImg);
}
希望这有帮助。