专栏首页python3python3+opencv3人脸识别入

python3+opencv3人脸识别入

import sys
import importlib
import cv2

#注意python2中,直接调用reload(sys),但python3中要import importlib
importlib.reload(sys)

# 待检测的图片路径
imagepath = r'./heat.jpg'

# 获取训练好的人脸的参数数据,这里直接从GitHub上使用默认值,注意该xml文档要放在执行目录下
face_cascade = cv2.CascadeClassifier(r'./haarcascade_frontalface_default.xml')

# 读取图片
image = cv2.imread(imagepath)

#把图像转为灰度图,查了一下原因,是这么说的:
# 减少数据量(比如RGB模式,可以减少到原图片的1/3),同时可 以去掉一些噪声信号。
# 先将图片转化为灰度图,然后将这个灰度图的对比度增高,这样可以使得图片本来暗的地方更暗,亮的地方更亮一些。
# 这样处理以后,图片就 更容易被算法设别出来了。
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# 探测图片中的人脸
faces = face_cascade.detectMultiScale(
        image,
        scaleFactor=1.15,
        minNeighbors=5,
        minSize=(5, 5),
        flags=cv2.IMREAD_GRAYSCALE)

print
"发现{0}个人脸!".format(len(faces))

#faces中的四个量分别为左上角的横坐标、纵坐标、宽度、长度
#circle
for (x, y, w, h) in faces:
    # cv2.rectangle(image,(x,y),(x+w,y+w),(0,255,0),2)
    print(x,y,w,h)
    cv2.circle(image, ((x + x + w) // 2, (y + y + h) // 2),(w // 2), (0, 255, 0),2)

cv2.imshow("Find Faces!", image)

cv2.waitKey(0)

https://blog.csdn.net/qq_30310799/article/details/80829930 本文章有circle函数的介绍

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • OpenCV 的颜色空间转换

    py3study
  • 手势识别中一些错误解决方法

    最近在看一个手势识别的项目时,遇到了一些错误,主要原因是该项目是使用python2.7+opencv2.4.8,而我的环境是python3.5.2+opencv...

    py3study
  • opencv-python 基本例子3个

    其中的内容均参考自官网的说明: http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_tutorials.ht...

    py3study
  • OpenCV 处理中文路径、绘制中文文字的烦恼,这里通通帮你解决!

    在 OpenCV 中,由于编码的缘故,对于中文的处理并不是很友好,比如中文路径的图片读取和写入以及在图片上绘制中文文字等,这几个问题都是笔者经常遇到的,本文列出...

    机器视觉CV
  • pytorch读取一张图像进行分类预测需要注意的问题(opencv、PIL)

    使用opencv读取图像之后是BGR格式的,使用PIL读取图像之后是RGB格式的。

    绝命生
  • Spring boot+Spring security+JJWT 实现restful风格的权限验证

    https://github.com/MarkGao11520/spring-boot-security-restful

    Meet相识
  • Java8 Lambda表达式与Stream API (一):Lambda表达式你要知道的Java8 匿名内部类、函数式接口、lambda表达式与Stream API都在这里

    你要知道的Java8 匿名内部类、函数式接口、lambda表达式与Stream API都在这里 转载请注明出处 https://cloud.tencent.co...

    WWWWDotPNG
  • 计算机程序的思维逻辑 (12) - 函数调用的基本原理

    栈 上节我们介绍了函数的基本概念,在最后我们提到了一个系统异常java.lang.StackOverflowError,栈溢出错误,要理解这个错误,我们需要理...

    swiftma
  • frp实现外网访问群晖synology

        下载Linux(centos7)版本的frp_0.21.0,所有版本frp点这里

    用户1086810
  • Java高级特性之泛型

    枕边书

扫码关注云+社区

领取腾讯云代金券