首页 > 其他分享 >OpenCv人脸检测技术-(实现抖音特效-给人脸戴上墨镜)

OpenCv人脸检测技术-(实现抖音特效-给人脸戴上墨镜)

时间:2023-04-21 18:56:51浏览次数:36  
标签:xml img over cv2 OpenCv 抖音 人脸

OpenCv人脸检测技术-(实现抖音特效-给人脸戴上墨镜)

本文章用的是Python库里的OpenCv。

OpenCv相关函数说明

import cv2 # 导入OpenCv库
cv2.imread(filename) # 读取图像
object = cv2.CascadeClassifier() # 括号里面填Haar级联分类器
"""
CascadeClassifier,是Opencv中做人脸检测的时候的一个级联分类器。并且既可以使用Haar,也可以使用LBP特征。Haar特征是一种反映图像的灰度变化的,像素分模块求差值的一种特征。
"""
object.detectMultiScale(image, scaleFactor, minNeighbors)
"""
detectMultiScale是CascadeClassifier的子类;
image:待分析的图像。
scaleFactor:扫描图像时缩放的比例。
minNeighbors:保留多少检测结果,该值越大误差越小。
etc...
"""
cv2.waitKey(delay) # 等待用户按下键盘后等待delay毫秒
cv2.destroyAllWindows() # 销毁所有窗口

分析人脸位置

人脸检测,把图像分成一个个小块,对每一个小块判断是否是人脸,假如一张图被分成了5000块,则速度非常慢。
为了提高效率,OpenCV 提供 cascades 来避免这种情况。提供了一系列的xml文件
cascades :翻译 :小瀑布 级联
cascade 对于每个数据块,它都进行一个简单快速的检测。若过,会再进行一个更仔细的检测。该算法有 30 到 50 个这样的阶段,或者说 cascade。只有通过全部阶段,cascade才会判断检测到人脸。这样做的好处是:大多数小块都会在前几步就产生否定反馈,节约时间。
资源链接,该资源不仅仅包括人脸xml,还有其他眼睛等。赚取点积分吧。
OpenCV人脸识别xml文件.zip或者从官网Sources里找资源,data文件夹中有是特征文件,我们一般选用haarcascade_frontalface_default.xml

资料来源于网络,侵删。

import cv2
img = cv2.imread("/Users/duanhao/Desktop/photo/liukun.jpg")
# 加载识别人脸的级联分析器
faceCascade = cv2.CascadeClassifier("/Applications/anaconda/anaconda3/lib/python3.9/site-packages/cv2/data/haarcascade_frontalface_default.xml")
faces = faceCascade.detectMultiScale(img, 1.15, 5)
for (x, y, w, h) in faces:
    cv2.rectangle(img, (x, y), (x + w, y + h), (0, 0, 255), 5)
cv2.imshow("image", img)
cv2.waitKey()
cv2.destroyAllWindows()

给人脸戴上墨镜

准备阶段:我们可以读取视频,也可以读取人脸,这里我准备了一张含有人脸的照片;

如果要读取视频需要用:VideoCapture类方法。

素材:一张墨镜

标签:xml,img,over,cv2,OpenCv,抖音,人脸
From: https://www.cnblogs.com/itduan/p/17341429.html

相关文章

  • Qt5.14+CMake3.22+OpenCV4.5
    原文地址zhuanlan.zhihu.com下载链接首先需要下载对应的软件,下载链接和我选择的版本如下(仅作参考):QtIndexof/archive/qt/5.14/5.14.2,qt-opensource-windows-x86-5.14.2.exeCMakeDownload|CMake,cmake-3.23.0-windows-x86_64.msi注意x86指的是32位系统;x64指的是64位系......
  • OpenCV实现银行卡数字识别
    目录1.预处理模板图像(1)读入模板图像(2)化为灰度图(3)化为二值图(4)画出0-9这10个数字的外轮廓(5)计算外接矩形并且resize成合适大小2.预处理银行卡图像(1)读入需识别的银行卡并化为灰度图(2)礼帽操作(3)梯度运算(Sobel算子)(4)闭操作(5)阈值分割(6)再进行闭操作(7)计算外轮廓(8)计......
  • 门禁系统中人脸检测技术的原理剖析和使用教程
    引言人脸检测API是一种基于深度学习技术的图像处理API,可以快速地检测出一张图片中的人脸,并返回人脸的位置和关键点坐标,在人脸识别系统、人脸情绪识别等多种场景下都有极大的应用。本文将从人脸检测的发展历程、原理、特点等角度出发,一文带你看透人脸检测API。人脸检测技术......
  • opencv 407 resize 类型
    enumInterpolationFlags{/**nearestneighborinterpolation*/INTER_NEAREST=0,/**bilinearinterpolation*/INTER_LINEAR=1,/**bicubicinterpolation*/INTER_CUBIC=2,/**resamplingusingpixel......
  • 团队(PM)人脸识别
    我们这个人脸识别的项目预期:两个星期。目前已经花的时间:10天。完成进度:目前已经完成了95%。整个项目的流程可以顺利的进行。公开任务看板照片: 燃尽图:  产品状态:产品基本已经完成了。(只剩下一些功能的优化和一些测试) ......
  • 人脸识别 进度7
    张旭彤:写了:增加返回主界面的按钮问题:文字不居中等准备:运行程序,使程序更完善。赵胜府:今天我把所有按钮都加上了,小组完成了所有的整合,添加了我们的自拍照,完成了任务,添加成功,组长收集了所有的部署,照片能实现识别遇到的问题:整合jsp参数混乱,页面参差不齐,我不会人脸识别借口的调用。......
  • 使用 OpenCV4 和 C++ 构建计算机视觉项目:1~5
    原文:BuildingComputerVisionProjectswithOpenCV4andC++协议:CCBY-NC-SA4.0译者:飞龙本文来自【ApacheCN计算机视觉译文集】,采用译后编辑(MTPE)流程来尽可能提升效率。当别人说你没有底线的时候,你最好真的没有;当别人说你做过某些事的时候,你也最好真的做过。一、Open......
  • 人脸识别 进度6
    张旭彤:写了:签到总表的页面添加教师和发起日期问题:没有返回主界面的按钮准备:完善返回主界面的功能赵胜府:王垚基:冀朝赛:学习了css的相关知识,为剩下的页面美化打基础。 ......
  • OpenCV图像边缘检测(17)
    边缘(edge)是指图像局部强度变化最显著的部分。主要存在于目标与目标、目标与背景、区域与区域(包括不同色彩)之间,是图像分割、纹理特征和形状特征等图像分析的重要基础。图像强度的显著变化可分为:阶跃变化函数,即图像强度在不连续处的两边的像素灰度值有着显著的差异线条(屋顶)变化函......
  • opencv-python 安装记录
    最近在看网上一个opencv的教程,其中的安装在ubuntu虚拟机下安装,照着安装一直没有成功,今天几个摸索,终于找到一个成功的版本。特此记录下安装过程。1、选择Ubuntu18.04版本的虚拟机(14.04、16.04都没有成功)2、更换阿里云数据源。3、......