-2

我有一个项目,可以在 openCV 中使用 Tracker lib 检测头部检测CascadeClassifer和跟踪。如何对 void 函数进行异或(XOR)?因为我使用 void 函数将检测与跟踪分开。它将如何检测头部然后它将开始跟踪,如果它开始跟踪检测将停止?

4

1 回答 1

0

如果您void CascadeClassifier::detectMultiScale(const Mat& image, vector<Rect>& objects, double scaleFactor=1.1, int minNeighbors=3, int flags=0, Size minSize=Size(), Size maxSize=Size())用于在图像中查找对象,则不需要对void值进行异或。检测结果见vector<Rect>& objects。如果向量包含任何矩形,则检测成功。如果检测到某些东西,那么您希望停止检测并跟踪结果。做一个 XOR likeif(detection^tracking)不会帮助你,因为

  • 无论如何,您都需要计算检测(以获得比较结果)
  • 您不知道是否应该进行检测或跟踪,因为无论哪种方式都是正确的。

我建议你在bool foundRectangle你的类中添加一个布尔变量,它会在真假之间切换。如果您需要检测,则为假,如果检测发现至少一个应跟踪的矩形,则为真。

if(foundRectangle){
    //track();
}
else {
    //detect();
}
于 2016-05-31T06:54:54.270 回答