• 大小: 68.95MB
    文件类型: .zip
    金币: 2
    下载: 2 次
    发布日期: 2022-12-19
  • 语言: Python
  • 标签: Python语言  

资源简介

基于Python的人工智能美颜系统,代码说明见:https://blog.csdn.net/m0_38106923/article/details/93338522

资源截图

代码片段和文件信息

# -*- coding: utf-8 -*-
“““
Created on Tue Sep 12 12:36:11 2017

@author: Quantum Liu
“““

import sysostraceback
import cv2
import dlib
import numpy as np

class NoFace(Exception):
    ‘‘‘
    没脸
    ‘‘‘
    pass

class Organ():
    def __init__(selfim_bgrim_hsvtemp_bgrtemp_hsvlandmarknameksize=None):
        ‘‘‘
        五官部位类
        arguments:
            im_bgr:uint8 array inference of BGR image
            im_hsv:uint8 array inference of HSV image
            temp_bgr/hsv:global temp image
            landmark:array(x2) landmarks
            name:string
        ‘‘‘
        self.im_bgrself.im_hsvself.landmarkself.name=im_bgrim_hsvlandmarkname
        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_bgrself.patch_hsv=self.get_patch(self.im_bgr)self.get_patch(self.im_hsv)
        self.set_temp(temp_bgrtemp_hsv)
        self.patch_mask=self.get_mask_re()
        pass
    
    def set_temp(selftemp_bgrtemp_hsv):
        self.im_bgr_tempself.im_hsv_temp=temp_bgrtemp_hsv
        self.patch_bgr_tempself.patch_hsv_temp=self.get_patch(self.im_bgr_temp)self.get_patch(self.im_hsv_temp)

    def confirm(self):
        ‘‘‘
        确认操作
        ‘‘‘
        self.im_bgr[:]self.im_hsv[:]=self.im_bgr_temp[:]self.im_hsv_temp[:]
    
    def update_temp(self):
        ‘‘‘
        更新临时图片
        ‘‘‘
        self.im_bgr_temp[:]self.im_hsv_temp[:]=self.im_bgr[:]self.im_hsv[:]
        
    def get_ksize(selfrate=15):
        size=max([int(np.sqrt(self.size/3)/rate)1])
        size=(size if size%2==1 else size+1)
        return (sizesize)
        
    def get_rect(self):
        ‘‘‘
        获得定位方框
        ‘‘‘
        ysxs=self.landmark[:1]self.landmark[:0]
        self.topself.bottomself.leftself.right=np.min(ys)np.max(ys)np.min(xs)np.max(xs)

    def get_patch(selfim):
        ‘‘‘
        截取局部切片
        ‘‘‘
        shape=im.shape
        return im[np.max([self.top-self.move0]):np.min([self.bottom+self.moveshape[0]])np.max([self.left-self.move0]):np.min([self.right+self.moveshape[1]])]

    def _draw_convex_hull(selfim points color):
        ‘‘‘
        勾画多凸边形
        ‘‘‘
        points = cv2.convexHull(points)
        cv2.fillConvexPoly(im points color=color)
        
    def get_mask_re(selfksize=None):
        ‘‘‘
        获得局部相对坐标遮罩
        ‘‘‘
        if ksize==None:
            ksize=self.ksize
        landmark_re=self.landmark.copy()
        landmark_re[:1]-=np.max([self.top-self.move0])
        landmark_re[:0]-=np.max([self.left-self.move0])
        mask = np.zeros(self.patch_bgr.shape[:2] dtype=np.float64)
    
        self._draw_convex_hull(mask
                         landmark_re
                         color=1)

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-06-22 16:52  基于Python的人工智能美颜系统\
     文件       14624  2019-06-22 16:38  基于Python的人工智能美颜系统\AIMakeup.py
     目录           0  2019-06-22 16:37  基于Python的人工智能美颜系统\data\
     文件    99693937  2018-08-08 17:50  基于Python的人工智能美颜系统\data\shape_predictor_68_face_landmarks.dat
     文件      373911  2019-06-22 16:46  基于Python的人工智能美颜系统\im.png
     文件       11357  2017-09-27 09:18  基于Python的人工智能美颜系统\LICENSE
     文件          96  2017-09-27 09:18  基于Python的人工智能美颜系统\make.bat
     文件        5783  2017-09-27 09:18  基于Python的人工智能美颜系统\MakupGUI.ui
     文件          82  2017-09-27 09:18  基于Python的人工智能美颜系统\README.md
     文件       13886  2017-09-27 09:18  基于Python的人工智能美颜系统\Ui_MakupGUI.py
     文件         802  2017-09-27 09:18  基于Python的人工智能美颜系统\Ui_MakupGUI.spec
     目录           0  2019-06-22 16:39  基于Python的人工智能美颜系统\__pycache__\
     文件       13609  2019-06-22 16:39  基于Python的人工智能美颜系统\__pycache__\AIMakeup.cpython-36.pyc

评论

共有 条评论