1

我目前正在尝试检测图像中的框,然后我想裁剪检测到的框以在我的项目中使用它……但是,opencv 的方形检测样本也检测到图像的衬里……所以,问题是我如何才能只检测图像中的框??我使用的是opencv244,c ++ ......只是为了记录,我已经在这里搜索过这个主题,但我无法得到任何想法......任何帮助将不胜感激,谢谢!这是我的图片的链接...

  1. 原图:http ://www.flickr.com/photos/94841531@N08/8631367890/in/photostream/lightbox/
  2. 检测到的盒子:http ://www.flickr.com/photos/94841531@N08/8631368138/in/photostream/lightbox/
4

1 回答 1

1

忽略最大的正方形

在 **squares.cpp* 中有这个函数:

static void findSquares( const Mat& image, vector<vector<Point> >& squares )
{

}

它接收 aMat和 a vector<vector<Point> >。所以在调用这个函数之后,原始的绿色矩形还没有绘制出来image,你可以迭代过滤掉在输入图像中找到的最大的squares矩形。

您可以查看这篇文章以检查如何识别图像中发现的最大正方形。

之后,您可能想要查看这篇文章从正方形向量中提取图像区域

请记住,它会drawSquares()在图像上绘制绿色的东西。

于 2013-04-09T02:44:38.393 回答