1、使用dir、inspect查看一个module的成员、类、文档
(dir函数列出一个定义对象的标识符,可以对任何对象起作用。inspect模版是针对模块,类,方法,功能等对象提供些有用的方法,)
import cv2
import inspect
print(dir(cv2))#查看所包含的函数
print(dir(inspect))#查看包含内容
2、进行人脸匹配,
import cv2
import face_recognition
import matplotlib.pyplot as plt
known_image=cv2.imread("tt1.JPG")
known_image=face_recognition.load_image_file("tt1.JPG")
unknown_image=cv2.imread("even1.JPG")
unknown_image=face_recognition.load_image_file("even1.JPG")
known_encoding=face_recognition.face_encodings(known_image)[0]
unknown_encoding=face_recognition.face_encodings(unknown_image)[0]
results=face_recognition.compare_faces([known_encoding],unknown_encoding,tolerance=0.6)
if results[0]==True:
print("匹配成功,该未知图片与已有图片人脸可匹配!")
else:
print("匹配失败!")
print(known_encoding)
print(unknown_encoding)
plt.imshow(known_image)
plt.axis('off')
plt.show()
plt.imshow(unknown_image)
plt.axis('off')
plt.show()
得到:
3、换脸的注意步骤
(1)检测人脸关键点,(使用dlib的检测函数,先检测人脸,再检测人脸关键点)
(2)根据68个特征点进行人脸调节
(3)计算人脸mask
(4)调用opencv的seamlessClone函数进行融合