(1) HOG是一种特征描述子,通常用于从图像数据中提取特征。它广泛用于计算机视觉任务的物体检测。
(2) 特征描述子的作用:它是图像的简化表示,仅包含有关图像的最重要信息
# 1 导入库
import cv2
import dlib
# 2 方法:绘制人脸矩形框
def plot_rectangle(image, faces):
for face in faces:
cv2.rectangle(image, (face.left(), face.top()), (face.right(), face.bottom()),(255, 0, 0), 4)# (255, 0, 0):矩形框的颜色, 4:表示线条粗细
return image
def main():
# 3 打开摄像头,读取视频
capture = cv2.VideoCapture(0)
# 4 判断摄像头是否正常工作
if capture.isOpened() is False:
print("Camera Error!")
# 5 摄像头正常打开:循环读取每一帧
while True:
ret, frame = capture.read()
if ret:
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)# BGR to GRAY
# 6 调用dlib库中的检测器
detector = dlib.get_frontal_face_detector()
det_result = detector(gray, 1)
# 7 绘制检测结果
dets_image = plot_rectangle(frame, det_result)
# 8 实时显示最终的检测效果
cv2.imshow("face detection with dlib", dets_image)
# 9 按键”ESC",退出,关闭摄像头
if cv2.waitKey(1) == 27:
break
# 10 释放所有资源
capture.release()
cv2.destroyAllWindows()
if __name__ == '__main__':
main()