opencv行人跟踪检测

#include
#include
#include cv::core/core.hpp 包含 cv::core/core.hpp
#include cv::highgui/highgui.hpp 包含 cv::highgui/highgui.hpp
#include cv::imgproc/imgproc.hpp 包含 cv::imgproc/imgproc.hpp
#include cv::objdetect/objdetect.hpp 包含 cv::objdetect/objdetect.hpp
#include cv::ml/ml.hpp 包含 cv::ml/ml.hpp
using namespace std;
using namespace cv;
int main()
{
通过调用imread函数加载输入图像文件"3123.jpg"到Mat变量src中;创建一个HOG特征检测器对象hog;通过调用setSVMDetector方法配置HOG特征检测器中的SVM分类器为默认的人体检测器;定义两个矩形框数组found和found_filtered;在输入图像中执行多尺度检测操作,并将结果存储于found和found_filtered两个矩形框数组中
cout << "统计当前候选框数量:" << candidates.size() << endl;
// 筛选出所有不嵌套的候选框r,并将其存入candidates数组中
for (int i = 0; i < candidates.size(); i++) {
Rect r = candidates[i];
// 检查是否有其他候选框s完全包含当前候选框r
bool isEmbedded = false;
for (int j = 0; j < candidates.size(); j++) {
if (j != i && (r & candidates[j]) == r) {
isEmbedded = true;
break;
}
}
if (!isEmbedded) {
// 若未找到包含关系,则将当前候选框加入结果列表
candidates_result.push_back(r);
}
}
cout << "过滤后独立候选框数量:" << candidates_result.size() << endl;
对目标框进行绘制
对目标框进行绘制
imwrite("ImgProcessed.jpg", src);
namedWindow("src", 0);
imshow("src", src);
waitKey();
system("pause");
}
当有其他物体叫人体挡住时,效果不明显

