基于python的人脸识别

三个python项目实战,打造人脸识别系统!

链接

案例一:识别图片中人头像

思路:
1.导入库

import cv2

2.加载图片

img=cv2.imread('/Users/James/Desktop/image1.jpg')

3.创建窗口

cv2.namedWindow('James hao chou')

4.显示图片

cv2.imshow('James',img)

5.暂停窗口

cv2.waitKey(0)

6.关闭窗口

cv2.destroyAllWindows()

案例二:在识别的图片上面添加人脸识别:重点注意,需要添加模型

思路:
1.导入库

import cv2

2.加载图片

img=cv2.imread('/Users/James/Desktop/image1.jpg')

3.加载人脸模型

cv2.CascadeClassifier("/..../haarcascade_frontalface_default.xml")

4.调整图片灰度(人脸识别没必要识别颜色,灰度可以提高性能)

gray=cv2.cvtColor(img,cv2.COLOR_RGB2GRAY)

5.检查人脸

faces=face.detectMultiScale(gray)

6.标记人脸

for(x,y,w,h) in faces:
	#里面有四个参数 1.写图片 2.坐标原点 3.识别大小 4.颜色RGB 5.线宽
	cv2.rectangle(img,(x,y),(x+w,y+h),(0,255,0),10)

7.创建窗口

cv2.namedWindow('James hao chou')

8.显示图片

cv2.imshow('James',img)

9.暂停窗口

cv2.waitKey(0)

10.关闭窗口

cv2.destroyAllWindows()

案例三:调用摄像头

思路:
1.导入库

import cv2

2.打开摄像头

capture=cv2.VideoCapture(0)

3.获取摄像头实时画面

cv2.namedWindow('she xiang tou')
while True
	#3.1读取摄像头的帧画面
	ret,frame=capture.read()
	#3.2显示图片(渲染画面)
	cv2.imshow('James',frame)
	#3.3暂停窗口
	if cv2.waitKey(5) & 0xFF == ord('q')
		break

4.释放资源

capture.release()

5.关闭窗口

cv2.destroyAllWindows()

案例四:摄像头识别人脸

思路:
1.导入库

import cv2

2.加载人脸模型

face=cv2.CascadeClassifier("/..../haarcascade_frontalface_default.xml")

3.打开摄像头

capture=cv2.VideoCapture(0)

4.创建窗口

cv2.namedWindow('James shexiangtou')

5.获取摄像头实时画面

while True
	#5.1读取摄像头帧画面
	ret,frame=capture.read()
	#5.2图片灰度调整
	gray=cv2.cvtColor(frame,cv2.COLOR_RGB2GRAY)
	#5.3检查人脸
	faces=face.detectMultiScale(gray,1.1,3,0,(100,100))
	#5.4标记人脸
	for(x,y,w,h) in faces:
	#里面有四个参数 1.写图片 2.坐标原点 3.识别大小 4.颜色RGB 5.线宽
		cv2.rectangle(frame,(x,y),(x+w,y+h),(0,255,0),2)
	#5.5显示图片
		cv2.imshow('shexiangtou',frame)
	#5.6暂停窗口
		if cv2.waitKey(5)&0xFF == ord('q')
			break

6.释放资源

capture.release()

7.关闭摄像头

cv2.destroyAllWindows()
基于Python人脸识别技术主要包括三个部分:人脸检测、人脸特征提取和人脸识别。常用的库包括OpenCV和Dlib等。 以下是一个基于Python人脸识别的示例代码: ```python import cv2 import dlib # 加载正脸检测器 detector = dlib.get_frontal_face_detector() # 加载人脸关键点检测器 predictor = dlib.shape_predictor("shape_predictor_68_face_landmarks.dat") # 加载人脸识别模型 facerec = dlib.face_recognition_model_v1("dlib_face_recognition_resnet_model_v1.dat") # 加载图片 img = cv2.imread("test.jpg") # 转换为灰度图像 gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 检测人脸 faces = detector(gray, 1) # 遍历每个人脸 for face in faces: # 获取人脸关键点 landmarks = predictor(gray, face) # 获取人脸特征 face_descriptor = facerec.compute_face_descriptor(img, landmarks) # 在图像中绘制人脸框和关键点 cv2.rectangle(img, (face.left(), face.top()), (face.right(), face.bottom()), (0, 255, 0), 2) for i in range(68): x = landmarks.part(i).x y = landmarks.part(i).y cv2.circle(img, (x, y), 2, (0, 0, 255), -1) # 显示图像 cv2.imshow("image", img) cv2.waitKey(0) cv2.destroyAllWindows() ``` 该代码使用了Dlib库进行人脸检测、关键点检测和人脸识别,并使用OpenCV库进行图像处理和显示。具体步骤包括: 1. 加载正脸检测器、人脸关键点检测器和人脸识别模型。 2. 加载图片并转换为灰度图像。 3. 使用正脸检测器检测人脸。 4. 遍历每个人脸,获取人脸关键点和人脸特征,并在图像中绘制人脸框和关键点。 5. 显示图像。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值