这篇文章主要讲解了“Python人脸识别怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python人脸识别怎么实现”吧!
0x 00 Python图片膨胀与腐蚀
图像的膨胀和腐蚀主要是寻找图像中的极大和极小区域。代码中的结构元素是指:设有两幅图象B,X。若X是被处理的对象,而B是用来处理X的,则称B为结构元素(structure element),又被形象地称做刷子。结构元素通常都是一些比较小的图象。
"""图片膨胀与腐蚀"""
import cv2
#读取图片:cv2.imread(路径,num)
img = cv2.imread("1.jpg",0)
#构造一个3*3的结构元素
elment = cv2.getStructuringElement(cv2.MORPH_RECT,(3,3))
#膨胀图像cv2.dilate(图像,元素结构)
dilate = cv2.dilate(img,elment)
#腐蚀图像cv2.erode(图像,元素结构)
erode = cv2.erode(img,elment)
#将两幅图像相减获得边,第一个参数是膨胀后的图像,第二个参数是腐蚀后的图像
result = cv2.absdiff(dilate,erode)
#阈值类型:'TERM_CRITERIA_COUNT', 'TERM_CRITERIA_EPS', 'TERM_CRITERIA_MAX_ITER',
# 'THRESH_BINARY', 'THRESH_BINARY_INV', 'THRESH_MASK', 'THRESH_OTSU',
# 'THRESH_TOZERO_INV', 'THRESH_TRIANGLE', 'THRESH_TRUNC'
retval,result = cv2.threshold(result,50,255,cv2.THRESH_BINARY);
#反色,即对二值图像每个像素取反
result = cv2.bitwise_not(result);
#显示图像
cv2.imshow('origin',img)
#原图
cv2.imshow('result',result)
#边缘检测图
cv2.waitKey(0)
cv2.destroyAllWindows()
0x01 图片人脸识别
图片人脸识别分为以下几步:
-
图片灰度化、几何变换、图像增强、归一化
-
特征点定位、人脸对齐、抓取人脸特征
"""人脸检测"""
import cv2
#调用人脸检测特征库
face = cv2.CascadeClassifier('haarcascade_frontalface_alt2.xml')
#读取图像文件
sample_imag = cv2.imread('1.jpg')
#人脸检测
faces = face.detectMultiScale(sample_imag,scaleFactor=1.1,minNeig hbors=5,minSize=(10,10))
#画框处理
for (x,y,w,h) in faces:
cv2.rectangle(sample_imag,(x,y),(x+w,y+h),(0,255,0),2)
#结果写入图像
cv2.imwrite('face.jpg',sample_imag)
print("detect success")
#新建窗口显示图像
cv2.namedWindow("Image")
cv2.imshow("Image",sample_imag)
cv2.waitKey(0)
cv2.destroyAllWindows()
展示一下识别我詹皇:帅
还有识别勇士的时候:(不会吧不会吧,竟然没识别到~~我去学习训库了)
0x02 动态人脸识别
动态人脸识别是不需要停驻等待,你只要出现在一定识别范围内,无论你是行走还是停立,系统就会自动进行识别,也就是说,人以自然的形态走过去,摄像头会进行信息的抓拍和采集,发出相应的指令,进行动态人脸识别。
首要是依据人脸器官的形状描绘以及他们之间的间隔特性来获得有助于人脸分类的特征数据,其特征重量一般包含特征点间的欧氏间隔、曲率和视点等。
import cv2
# 1.使用OpenCV的分类器
# 2.从摄像头或本地中读取照片
# 3.在图片上换框
# 4.在新窗口上展示图片
# 1.使用OpenCV的分类器/特征库
detector = cv2.CascadeClassifier('haarcascade_frontalface_alt2.xml')
# 2.从摄像头或本地中读取照片
cap = cv2.VideoCapture(0)
while True:
ret,img = cap.read()
faces = detector.detectMultiScale(img,1.3,5)
# 3.在图片上换框
for (x,y,w,h) in faces:
cv2.rectangle(img, (x, y), (x + w, y + h), (0, 255, 0), 2)
cv2.imshow('frame',img)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 4.在新窗口上展示图片
cap.release()
cv2.destroyAllWindows()
感谢各位的阅读,以上就是“Python人脸识别怎么实现”的内容了,经过本文的学习后,相信大家对Python人脸识别怎么实现这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
原创文章,作者:306829225,如若转载,请注明出处:https://blog.ytso.com/226002.html