opencv人脸识别算法基于什么(体验opencv进行人脸识别基于python)

网站编辑01 2022-07-16 10:40:04 阅读:42

  使用opencv自带的分类器进行人脸识别,python中需要导入cv2模块。如果之前没有安装过这个模块可以用pip工具安装:

  pip install opencv-python

  安装完成后就可以开始编码了

  1.导入模块

  import cv2

  2.加载分类器

  myCascade = cv2.CascadeClassifier("cascade")

  myCascade.load("D:/env/opencv2/opencv/build/share/OpenCV/haarcascades/haarcascade_frontalcatface.xml")

  haarcascade_frontalcatface.xml分类器就是opencv自带的前脸识别分类器,目录中还有一些其他的分类器有兴趣可以尝试一下。

  3.加载图片

  image = cv2.imread("03.jpg");

  使用imread函数,传入图片路径。

  4.将图片转换为灰度图

  gray = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)

  5.传入灰度图进行检测,识别出人脸的区域。

  rects = myCascade.detectMultiScale(gray, scaleFactor = 1.3,minNeighbors = 3,minSize=(100,100),flags=cv2.IMREAD_GRAYSCALE)

  调用分类器对象的detectMultiScale函数进行检测,第一个参数就是贷检测的图片,scaleFactor搜索窗口变换的比例默认1.1,minNeighbors表示每个目标至少要被检测到多少次才算真的目标,minSize表示目标的最小尺寸,flags与旧函数cvHaarDetectObjects中的相同,也不知道是啥。

  6.将检测出的矩形区域绘制到图片中

  for (x,y,w,h) in rects:

  cv2.rectangle(image,(x,y),(x+w,y+h),(0,255,0),1)

  7.最后显示绘有矩形区域的图片

  cv2.imshow('img',image)

  全部代码如下:

  

体验opencv进行人脸识别(基于python)


  运行效果:

  

体验opencv进行人脸识别(基于python)


二维码