2012-03-18 94 views
1

我是OpenCV的新手,所以如果使用不正确的术语,我很抱歉。我正在用C编写一个程序,用于查找图像中的对象(在本例中为红色构建块),并提取图像的这一部分并将其显示为新图像。我已经限定了图像以除去一切,但是使用cvDilate稍微模糊了结果,以使对象更清晰。然后,我使用OpenCV轮廓查找和绘图功能来定位和绘制块。从轮廓位置生成边界框

如何访问存储为CvSeq *的轮廓位置,并从一组轮廓中获取最上方和最下方的轮廓值(可能仍有来自其他红色对象的一些噪声),以便我可以制作一个围绕它的边界框?

感谢

回答

0

其实,你不必手动做到这一点,因为OpenCV的为你提供这种类型的功能。

看看cvMinAreaRect2cvBoundingRect。这里分别是他们的例子:​​(有一些调试的东西,但应该给你如何使用它的要点)和generalContours_demo1.cpp(在C++中,但应该很容易翻译)。作为一个便笺,我肯定会建议使用OpenCV的C++ API,因为它更容易理解并且具有更多功能。此外,由于Mat类为您处理,因此您花费的时间/代码少了很多,因为它们会担心内存管理。

希望有帮助!