程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> OpenCV實踐之路——行人檢測

OpenCV實踐之路——行人檢測

編輯:關於C++

行人檢測是視覺領域很熱也很有用的一個主題,特別是在無人駕駛中,行人檢測的重要性不言而喻。

在之前進行了人臉檢測之後,行人檢測就顯得簡單多了。過程大致與人臉檢測一樣,都是先加載分類器,然後進行多尺度檢測。就偷懶不再贅述。

這裡只是把代碼放在這裡,沒幾行,而且都有著注釋:

 

#include 
#include 
#include 
//#include 


using namespace cv;

int main(int argc, char** argv)
{
	Mat img;
	vector people;
	img = imread("xingren.jpg",1);

	//定義HOG對象,采用默認參數,或者按照下面的格式自己設置
	HOGDescriptor defaultHog;
		//(cv::Size(64, 128), cv::Size(16, 16), cv::Size(8, 8), 
								//cv::Size(8, 8),9, 1, -1, 
								//cv::HOGDescriptor::L2Hys, 0.2, true, 
								//cv::HOGDescriptor::DEFAULT_NLEVELS);

	//設置SVM分類器,用默認分類器
	defaultHog.setSVMDetector(HOGDescriptor::getDefaultPeopleDetector());

	//對圖像進行多尺度行人檢測,返回結果為矩形框
	defaultHog.detectMultiScale(img, people,0,Size(8,8),Size(0,0),1.03,2);

	//畫長方形,框出行人
	for (int i = 0; i < people.size(); i++)
	{
		Rect r = people[i];
		rectangle(img, r.tl(), r.br(), Scalar(0, 0, 255), 3);
	}

	namedWindow("檢測行人", CV_WINDOW_AUTOSIZE);
	imshow("檢測行人", img);
	waitKey(0);

	return 0;
}

 

 

效果圖如下:

 

\
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved