opencv c++ detectMultiScale()函数
时间: 2024-02-26 10:54:44 浏览: 249
`detectMultiScale()` 是 OpenCV 中一个用于对象检测的函数,可以在图像中检测出指定的对象。该函数的原型如下:
```c++
void detectMultiScale(
InputArray image, // 输入图像
std::vector<Rect>& objects, // 检测到的对象位置和大小
double scaleFactor=1.1, // 每次缩小图像的比例
int minNeighbors=3, // 每个候选矩形应有的邻居数
int flags=0, // 保留参数
Size minSize=Size(), // 最小的检测框尺寸
Size maxSize=Size() // 最大的检测框尺寸
);
```
`detectMultiScale()` 的参数解释如下:
- `image`:输入图像,可以是灰度图像或彩色图像;
- `objects`:检测到的对象位置和大小;
- `scaleFactor`:每次缩小图像的比例;
- `minNeighbors`:每个候选矩形应有的邻居数,用于过滤掉一些假阳性;
- `flags`:保留参数;
- `minSize`:最小的检测框尺寸;
- `maxSize`:最大的检测框尺寸。
`detectMultiScale()` 函数的工作原理是:先用 Haar 特征检测器在图像中检测出可能包含目标的矩形区域,然后用滑动窗口的方式对这些矩形区域进行缩放,再用分类器进行分类,最后输出符合条件的矩形区域。
阅读全文