【发布时间】:2014-04-21 21:31:19
【问题描述】:
我需要编写一个 OpenCV 程序,从摄像头提要中的几个人中检测出一个人穿着一件带有徽标的特定 T 恤。
我可以使用 SURF 来检测 logo 和 HOGDescriptor 来检测人。
然后我可以检查徽标的边界框的角是否在绑定人的矩形的角内。
标志的角存储在:
std::vector< Point2f > scene_corners(4);
人周围的矩形的角存储使用:
cv::Rect r = found[i];
我需要做以下比较:
if(scene_corners[0]>=r.tl() && scene_corners[2]<=r.br())
其中 r.tl() 和 r.br() 是矩形的角。
这不起作用,我猜是因为操作数不兼容。我该如何进行比较?提前致谢。
【问题讨论】:
-
您的问题是什么?看起来您已经编写了所需的代码。您“比较”的目标是什么?
-
我应该检测出穿着带有特定徽标的 T 恤的人。因此,我检测到人,然后检查徽标是否存在于该人的边界矩形内,并且仅当该徽标存在于其中时才绘制矩形。上面给出的“if”条件是无效的,因为操作数是不同的类型。我不知道该怎么做。谢谢!