【发布时间】:2016-10-06 17:20:46
【问题描述】:
我正在使用 haar cascade 创建一个计算人的程序。检测不会在一帧中给我所有人,但在下一帧中,我会检测到前一帧中未检测到的对象。
示例:在视频中我有一些人 在第 1 帧中,我检测到人 A 和 B 在第 2 帧中,我检测到人 A 和 C
有没有根据两帧得到真实人数
我用过这个功能但是不靠谱
bool isInside(Rect rectangle, Point point)
{
if (point.x > rectangle.x && point.x<rectangle.x + rectangle.width && point.y>rectangle.y && point.y < rectangle.y + rectangle.height)
return true;
}
vector<Point> getNouvellesDetections(vector<Rect> rectangles, vector<Point> anciennePoints)
{
vector<Point> nouvellePoints = anciennePoints;
for (int i = 0; i < rectangles.size(); i++)
{
bool isNouveau = true;
for (int j = 0; j < anciennePoints.size(); j++)
{
if (isInside(rectangles[i], anciennePoints[j]))
{
isNouveau = false;
anciennePoints[j].x = getCenterX(rectangles[i]);
anciennePoints[j].y = getCenterY(rectangles[i]);
break;
}
}
if (isNouveau)
{
Point point;
point.x = getCenterX(rectangles[i]);
point.y = getCenterY(rectangles[i]);
nouvellePoints.push_back(point);
}
}
return nouvellePoints;
}
【问题讨论】:
标签: c++ opencv haar-classifier