Python学习之路人脸识别

admin 2022年1月25日00:58:44评论48 views字数 2296阅读7分39秒阅读模式

    分享一下关于Python图片膨胀和腐蚀、图片人脸识别以及动态人脸识别哒~~~开心呢,本菇凉当时可是沉浸在cv2库中久久不能自拔了好久的呢~~希望你也能享受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()


展示一下识别我詹皇:帅=====不得不提我詹皇带领紫金军拿下总冠军,爱了~~

Python学习之路人脸识别


还有识别勇士的时候:(不会吧不会吧,竟然没识别~~我去学习训库了)

Python学习之路人脸识别

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的学习资料(视频和编程语言api文档的链接),后台回复“python学习包”,即可获得啦~~~

本文始发于微信公众号(凌晨安全):Python学习之路----人脸识别

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年1月25日00:58:44
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Python学习之路人脸识别http://cn-sec.com/archives/497433.html

发表评论

匿名网友 填写信息