导语
现在每一次出门,女友就喜欢拍照!BUT 嫌弃我给拍的照片角度不对,采光不好.......
总之一大堆理由,啥时候让我拍照的水平能有美颜相机三分之一的效果就好!
果然都是锻炼出来的,至少现在我能看出来朋友圈哪些小姐姐批没批过照片。
逃不掉逃不掉啊,为了摆脱这种局面——
立马给女友写了一款简易版本的美颜相机给她偷偷的用!这样子就不担心被锤了。机智如我.jpg
正文
环境安装:
dlib库的安装 本博客提供三种方法进行安装
T1方法:pip install dlib 此方法是需要在你安装cmake、Boost环境的计算机使用 。
T2方法:conda install -c menpo dlib=18.18此方法适合那些已经安装好conda库的环境的计算机使用。
T3方法:pip install dlib-19.8.1-cp36-cp36m-win_amd64.whl dlib库的whl文件——dlib-19.7.0-cp36-cp36m-win_amd64.rar dlib-19.3.1-cp35-cp35m-win_amd64.whl
cv2库安装方法:
pip install opencv-python
人脸五官,坐标、进行高斯模糊处理等等。
# 五官
class Organ():
def __init__(self, img, img_hsv, temp_img, temp_hsv, landmarks, name, ksize=None):
self.img = img
self.img_hsv = img_hsv
self.landmarks = landmarks
self.name = name
self.get_rect()
self.shape = (int(self.bottom-self.top), int(self.right-self.left))
self.size = self.shape[0] * self.shape[1] * 3
self.move = int(np.sqrt(self.size/3)/20)
self.ksize = self.get_ksize()
self.patch_img, self.patch_hsv = self.get_patch(self.img), self.get_patch(self.img_hsv)
self.set_temp(temp_img, temp_hsv)
self.patch_mask = self.get_mask_relative()
# 获取定位方框
def get_rect(self):
y, x = self.landmarks[:, 1], self.landmarks[:, 0]
self.top, self.bottom, self.left, self.right = np.min(y), np.max(y), np.min(x), np.max(x)
# 获得ksize,高斯模糊处理的参数
def get_ksize(self, rate=15):
size = max([int(np.sqrt(self.size/3)/rate), 1])
size = (size if size%2==1 else size+1)
return(size, size)
# 截取局部切片
def get_patch(self, img):
shape = img.shape
return img[np.max([self.top-self.move, 0]): np.min([self.bottom+self.