Python软件设计基础 第三节-人脸比对及程序换脸

目录

一、dir及inspect函数的使用 

(一)dir

(二)inspect

1、检查类型和成员

2、检索源代码

二、人脸比对

(一)人脸比对原理

(二)代码实现

三、 程序换脸

(一)前期准备

(二)代码实现

 四、视频捕获人脸并实时标记人脸信息


一、dir及inspect函数的使用 

(一)dir

Python内置函数 dir() 可以查看模块内定义的所有名称、属性,并以字符串列表的形式返回结果。

具体有如下两种形式:

  1. 当 dir() 不带参数时,返回当前范围内的变量、方法和定义的类型列表;
  2. 当 dir() 带参数时,返回参数的属性、方法列表。

语法为:

dir([object])
#object泛指具体的对象、变量、类型

例如:

不带参数时,获取当前模块的所有属性列表

 带参数时,获取参数的属性、方法列表(以cv2为例)

(二)inspect

inspect 能够帮助用户获取对象的信息,例如模块、类、方法、函数、回溯、帧对象以及代码对象。 该模块提供了4种主要的功能:

  1. 类型检查
  2. 获取源代码
  3. 获取类或者函数的参数信息
  4. 检查解释器的调用堆栈

 以下为inspect模块中常用的查看方法:

1、检查类型和成员

语法为:

import inspect
#导入inspect库

inspect.getmembers(object[, predicate])
#predicate是一个可选的函数参数,被此函数判断为True的成员才被返回

该函数获取对象的成员,例如类或模块。函数名以"is"开始的函数主要作为 getmembers() 的第2个参数使用。主要有如下几类:

inspect.ismodule(object)
#检查是否为模块

inspect.isclass(object)
#检查是否为类

inspect.ismethod(object)
#检查是否为方法(bound method written in python)

inspect.isfunction(object)
#检查是否为函数(python function, including lambda expression)

inspect.isgeneratorfunction(object)
#检查是否为python生成器函数

inspect.isgenerator(object)
#检查是否为生成器

inspect.istraceback(object)
#检查是否为traceback

inspect.isframe(object)
#检查是否为frame

inspect.iscode(object)
#检查是否为code

inspect.isbuiltin(object)
#检查是否为built-in函数或built-in方法

inspect.isroutine(object)
#检查是否为用户自定义或者built-in函数或方法

inspect.isabstract(object)
#检查是否为抽象基类

inspect.ismethoddescriptor(object)
#检查是否为方法标识符

inspect.isdatadescriptor(object)
#检查是否为数字标识符,数字标识符有__get__ 和__set__属性; 通常也有__name__和__doc__属性

inspect.isgetsetdescriptor(object)
#检查是否为getset descriptor

inspect.ismemberdescriptor(object)
#检查是否为member descriptor

2、检索源代码

语法为:

import inspect
#导入inspect库

inspect.getdoc(object)
#获取对象的文档字符串,如果没有则返回None

inspect.getcomments(object)
#以单个字符串的形式返回紧位于对象源代码(用于类、方法或者函数)之前的任何注释行,或者位于Python源文件的顶部(如果对象是个模块)。如果源代码不可用则返回None

inspect.getfile(object)
#返回定义对象的文件路径

inspect.getmodule(object)
#返回对象所属的模块名

inspect.getsourcefile(object)
#返回对
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值