#include<opencv2\opencv.hpp>
using namespace cv;
int main()
{
Mat img = imread("11.jpg");
vector<Rect> found, found_filtered;
cv::HOGDescriptor people_dectect_hog;
people_dectect_hog.setSVMDetector(cv::HOGDescriptor::getDefaultPeopleDetector());
people_dectect_hog.detectMultiScale(img, found, 0, Size(8, 8), Size(32, 32), 1.05, 2);
size_t i, j;
for (i = 0; i < found.size(); i++ )
{
Rect r = found[i];
//下面的这个for语句是找出所有没有嵌套的矩形框r,并放入found_filtered中,如果有嵌套的
//话,则取外面最大的那个矩形框放入found_filtered中
for(j = 0; j <found.size(); j++)
if(j != i && (r&found[j])==r)
break;
if(j == found.size())
found_filtered.push_back(r);
}
//在图片img上画出矩形框,因为hog检测出的矩形框比实际人体框要稍微大些,所以这里需要
//做一些调整
for(i = 0; i <found
Demo2:图片人体检测 (图片hog参数,效果还可以了)
最新推荐文章于 2021-12-20 07:09:40 发布