我目前正在尝试检测图像中的框,然后我要裁剪检测到的框,以便在我的项目中使用它…但是,opencv的正方形检测样本也可以检测图像的衬里。那么,问题是我如何才能只检测图像中的盒子??我正在使用opencv244, c++…顺便说一下,我在这里搜索过这个话题,但是我找不到任何想法……任何帮助将不胜感激,谢谢!这是我的图片链接…
- 原始图像:http://www.flickr.com/photos/94841531@N08/8631367890/in/photostream/lightbox/
- 检测到的盒子:http://www.flickr.com/photos/94841531@N08/8631368138/in/photostream/lightbox/
忽略最大的平方
在**squares.cpp*中有这样一个函数:
static void findSquares( const Mat& image, vector<vector<Point> >& squares )
{
}
接收一个Mat
和一个vector<vector<Point> >
。因此,在调用此函数之后,在原始image
中尚未绘制绿色矩形,您可以迭代squares
以过滤出输入图像中找到的最大矩形。
你可以看看这篇文章,看看如何识别图像中最大的正方形。
之后,你可能想检查这篇文章从正方形向量中提取图像的一个区域。
记住,是drawSquares()
在图像上绘制绿色的东西。