如何使用haarcascade_frontalface_defaul
时间: 2024-01-25 09:45:28 浏览: 82
t.xml进行人脸检测?
1. 导入必要的库和模块:
```python
import cv2
```
2. 加载训练好的分类器:
```python
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
```
3. 读取图像并将其转换成灰度图像:
```python
img = cv2.imread('image.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
```
4. 运行分类器进行人脸检测:
```python
faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5)
```
其中,detectMultiScale函数有三个参数:
- gray:灰度图像;
- scaleFactor:表示每次图像尺寸缩小的比例,一般设置为1.1;
- minNeighbors:表示每个检测出来的人脸周围最少需要有几个相邻的矩形框才能认为是人脸,一般设置为5。
5. 绘制矩形框标记出检测到的人脸:
```python
for (x, y, w, h) in faces:
cv2.rectangle(img, (x, y), (x + w, y + h), (0, 255, 0), 2)
```
其中,rectangle函数有五个参数:
- img:原始图像;
- (x, y):矩形框左上角的坐标;
- (x + w, y + h):矩形框右下角的坐标;
- (0, 255, 0):矩形框的颜色,一般设置为绿色;
- 2:矩形框的线宽。
6. 显示图像:
```python
cv2.imshow('img', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
完整代码如下:
```python
import cv2
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
img = cv2.imread('image.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5)
for (x, y, w, h) in faces:
cv2.rectangle(img, (x, y), (x + w, y + h), (0, 255, 0), 2)
cv2.imshow('img', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
阅读全文