zoukankan      html  css  js  c++  java
  • 只用22行代码完成对照片的人脸检测

    可以从一张照片中检测出多张脸部,并保存在photos文件夹下。

    代码如下:

    import cv2
    name = "test"
    number = 0
    image_path = './1.jpg'
    casc_path = './haarcascades/haarcascade_frontalface_alt.xml'
    face_cascade = cv2.CascadeClassifier(casc_path)
    # 加载图片
    image = cv2.imread(image_path)
    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    # 从图片上检测人脸数
    faces = face_cascade.detectMultiScale(
    gray,
    scaleFactor=1.25,
    minNeighbors=2,
    minSize=(30, 30),
    )
    print('找到 {0} 张脸!'.format(len(faces)))
    # 在图片上标示人脸并保存到photos
    for (x, y, w, h) in faces:
    number+=1
    cv2.rectangle(image, (x, y), (x + w, y + h), (0, 255, 0), 2)
    cv2.imwrite("photos/{}.{}.jpg".format(name, number), gray[y:y + h, x:x + w])
    cv2.imshow("Faces have found", image)
    cv2.imwrite("./face_detection.jpg", image)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

    注意:

      本代码在ipython notebook下调试成功,使用python 3 版本,需要安装cv2 类库(3.4)

      pip install opency_python 

      可以使用修改haarcascades过滤器调整识别参数,会有不同的识别结果,

           haarcascades各种xml过滤器文件可以在opencv 的/data/haarcascades/文件下

      opencv下载地址:

      https://github.com/opencv/opencv/releases/tag/3.4.0

      如将代码中gray[y:y + h, x:x + w]的gray替换成image即可获得彩色图片。

  • 相关阅读:
    计算机病毒
    wordpress搬家教程
    javascript的DOM学习之选项卡制作
    javascript的DOM学习上
    [转]jQuery 引用地址{包括jquery和google提供的地址}, 节省你不必要的流量
    CSS3属性之:transition
    CSS3属性之:animastion
    css3学习系列之box-shadow(1)
    使ie678支持css3伪类选择器的插件
    个人网站名称填写注意事项
  • 原文地址:https://www.cnblogs.com/windel/p/8371399.html
Copyright © 2011-2022 走看看