在一个帧中存在多个感兴趣区域的情况下,是否可以使用OpenCV执行博客检测?
我一直在阅读基于1.x 'C‘API的“学习OpenCV”(Learning)一书,我意识到IplImage中的ROI信息可以容纳单个ROI,因此所有操作都假定为一个ROI。这是否意味着我不能使用多个ROI?
我对多重ROI的需求源于一种减少处理的愿望,而我确实知道,我感兴趣的小块恰好只占整个图像区域的30-40%,分裂成3-4个区域。在整个图像上操作意味着处理能力/时间的60%-70%的开销。还是,我错过了一些最基本的东西?
编辑:
在SA上找到了this问题,看起来这可能是一种方法。如果我正确地理解了它,我可以在整个帧上使用一个掩码,打开多重ROI的掩码,但不使用IplImage中的ROI本身。是这样吗?此外,这是否符合我减少处理需求的目的,这是我使用ROI的主要目标?
发布于 2012-04-07 04:32:07
在您的情况下,我认为您可以一次设置一个ROI,并对每个ROI执行blob检测。记住,结果坐标在子图像空间中,您可能想要将它们转换回原始图像空间。我个人认为有一件事很有帮助:通常ROI不是内存--连续的,如果ROI的大小比原始图像小,那么将ROI复制成另一张图像并在单个图像上运行您的算法可能会更快,例如:
for (int i = 0;i < numRects; ++i) {
cv::Mat subImg = img(rects[i]).clone();
blobDetection(subImg);
}希望这能有所帮助。
https://stackoverflow.com/questions/10028916
复制相似问题