使用opencv提取人体图像
时间: 2023-09-17 10:10:16 浏览: 167
opencv提取图片中人轮廓
使用OpenCV提取人体图像需要进行以下步骤:
1. 导入OpenCV库和图像文件。
2. 加载Haar级联分类器模型,该模型用于检测人体。
3. 将图像转换为灰度图像,并进行直方图均衡化。
4. 在灰度图像中使用Haar级联分类器模型检测人体。
5. 将人体区域提取为ROI(感兴趣区域)。
6. 对ROI进行裁剪,以提取人体图像。
以下是使用Python代码实现上述步骤的示例:
```python
import cv2
# 导入图像文件
img = cv2.imread('image.jpg')
# 加载Haar级联分类器模型
classifier = cv2.CascadeClassifier('haarcascade_fullbody.xml')
# 将图像转换为灰度图像,并进行直方图均衡化
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
gray = cv2.equalizeHist(gray)
# 在灰度图像中使用Haar级联分类器模型检测人体
bodies = classifier.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5)
# 提取人体图像
for (x, y, w, h) in bodies:
# 将人体区域提取为ROI
body_roi = img[y:y+h, x:x+w]
# 对ROI进行裁剪,以提取人体图像
body_img = cv2.resize(body_roi, (200, 400))
cv2.imshow('Body', body_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
注意:在运行上述代码之前,需要先下载Haar级联分类器模型文件“haarcascade_fullbody.xml”。可以在OpenCV官方网站上下载该文件。
阅读全文