翻译自原文:
目标检测是一个程序,他用来确定图像的某个区域是不是含有要进行识别的对象,对象识别是程序识别对象的能力。识别通常是只处理已经检测到对象的区域,例如,人们总是会在有人脸图像的地方去识别人脸。
一般来说会用到下面的三种技术
1.梯度直方图
2.图像金字塔
3.滑动窗口
行了,话不多说。咱们不是来研究这些东西的,只是为了应用罢了,直接来上一个例子,下面的是c++的demo
#include<opencv2/opencv.hpp>
#include<vector>
using namespace cv;
using namespace std;
int main()
{
Mat img;
vector<Rect> found;
img = imread("2.jpg");
if (img.empty())
{
printf("没有图片\n");
return -1;
}
HOGDescriptor defaultHog;
defaultHog.setSVMDetector(HOGDescriptor::getDefaultPeopleDetector());
//进行检测
defaultHog.detectMultiScale(img, found);
//画长方形,框出行人
for (int i = 0; i < found.size(); i++)
{
Rect r = found[i];
rectangle(img, r.tl(), r.br(), Scalar(0, 0, 255), 3);
}
namedWindow("检测行人", CV_WINDOW_AUTOSIZE);
imshow("