人脸识别前缀

 

 

额,实属兴趣学的一个项目,之后就是全部过程。

 

这个项目运用的是python中的一个opencv模块。

1. 先看看读取图片:

import cv2 as cv

# 进行对图片的读取
image = cv.imread('图片路径')
# 显示图片,第一个参数可自定义(目前认为是一个别称),第二个参数即使读取的图片
cv.imshow('detect',image)

# waitKey,这个函数是对图片显示时间的一个设置,如果不设置图片将会一闪而过,若参数设为0,表示一直显示(此时按键盘中任意键即可退出),还有一件事,函数里的参数是以毫秒为单位(即3000为3秒)
cv.waitKey(0)
# destroyAllWindows函数是退出后清除图片的显示,当然也可以不写
cv.destroyAllWindows()

2. 对图片进行灰度转换:

import cv2 as cv

image = cv.imread('图片路径')

# 灰度转换,opencv采用的是三原色的一个原理,即为BGR(Bule,Green,Red),此处置为灰(COLOR_BGR2GRAY)
gray_img = cv.cvtColor(image,cv.COLOR_BGR2GRAY)
cv.imshow('gray',gray_img)

cv.waitKey(0)
cv.destroyAllWindows()

3. 标注绘图(在进行识别过程中会有标注的一个操作):

import cv2 as cv

image = cv.imread('图片路径')

# 绘制矩形   第二个参数是坐标及长宽,第三个参数表示颜色(线条),thickness表示线条的粗细
x,y,w,h = 100,100,30,30
rectangle = cv.rectangle(image,(x,y,x+w,y+h),color=(0,0,255))     # 色彩--->BGR
cv.imshow('rectangle',rectangle)

# 绘制圆形   第二个参数是圆心,第三个参数是半径,第四个参数表示颜色(线条),thickness表示线条粗细
circle = cv.circle(image,center=(100,100),radius=30,color=(0,0,255))
cv.imshow('circle',circle)

cv.waitKey(0)
cv.destroyAllWindows()

4. 开始识别并标记(单个人):

           这里需要去下载检测的一个库,然后去调用就可以进行检测了。

           下载地址:https://opencv.org

import cv2 as cv

def face_detect_demo():
    # 转换灰度
    gray_img = cv.cvtColor(image,cv.COLOR_BGR2GRAY)
    # 加载特征数据(参数即使调用opencv中的xml文件)
    face = cv.CascadeClassifier('***.../opencv/sources/data/haarcascades/haarcascade_frontalface_default.xml')
    # 检测(根据上面加载出来的特征进行检测)
    faces = face.detectMultiScale(gray_img)
   # 检测出来的结果会返回坐标即长和宽
    for x,y,w,h in faces:
     # 用矩形去标记
        rectangle = cv.rectangle(image,(x,y,x+w,y+h),color=(0,0,255),thickness=2)
    cv.imshow('detect',image)

image = cv.imread('图片路径')

# 进行人脸检测
face_detect_demo()

cv.waitKey(0)
cv.destroyAllWindows()
上一篇:Vue 小程序图标置灰方法


下一篇:图像阈值分割代码模板