opencv目标检测c++
时间: 2023-07-25 12:17:39 浏览: 218
opencv目标检测
4星 · 用户满意度95%
以下是使用OpenCV进行目标检测的C++代码示例,以人脸检测为例:
```c++
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
// 加载分类器
CascadeClassifier face_cascade;
face_cascade.load("haarcascade_frontalface_default.xml");
// 加载图像
Mat img = imread("test.jpg", IMREAD_COLOR);
// 将图像转换为灰度图像
Mat gray;
cvtColor(img, gray, COLOR_BGR2GRAY);
// 检测人脸
std::vector<Rect> faces;
face_cascade.detectMultiScale(gray, faces, 1.3, 5);
// 在图像中绘制矩形框
for (int i = 0; i < faces.size(); i++)
{
rectangle(img, faces[i], Scalar(255, 0, 0), 2);
}
// 显示结果
imshow("img", img);
waitKey(0);
return 0;
}
```
在以上代码中,`CascadeClassifier` 类是用于加载Haar Cascade分类器的类。`detectMultiScale` 函数是使用Haar Cascade进行目标检测的主要函数,并将检测结果存储在 `faces` 向量中。使用 `rectangle` 函数在图像中绘制矩形框。最后使用 `imshow` 函数显示结果,使用 `waitKey` 函数等待用户按下任意键后关闭窗口。
阅读全文