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

这篇具有很好参考价值的文章主要介绍了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类方法。

素材:一张墨镜🕶️的图片,用于后期覆盖原始图像。

代码:

import cv2
def over_img(img, img_over, over_x, over_y):
    img_h, img_w, c = img.shape
    img_over_h, img_over_w, over_c = img_over.shape
    if over_c == 3:
        img_over = cv2.cvtColor(img_over, cv2.COLOR_BGR2BGRA)
    for w in range(0, img_over_w):
        for h in range(0, img_over_h):
            # 透明像素不能覆盖图像
            if img_over[h, w, 3] != 0:
                for c in range(0, 3):
                    x = over_x + w
                    y = over_y + h
                    if x >= img_w or y >= img_h:
                        break
                    img[y, x, c] = img_over[h, w, c]
    return img

img = cv2.imread("/Users/duanhao/Desktop/photo/liukun.jpg")
glass = cv2.imread("/Users/duanhao/Desktop/photo/glass.png", cv2.IMREAD_UNCHANGED) # 保留图像类型
height, weight, channel = glass.shape
# 加载人脸识别联结器
faceCascade = cv2.CascadeClassifier("/Applications/anaconda/anaconda3/lib/python3.9/site-packages/cv2/data/haarcascade_frontalface_default.xml")
face = faceCascade.detectMultiScale(img, 1.15, 4)
for (x, y, w, h) in face:
    gw = w
    gh = int(height * gw/weight)
    img_over_new = cv2.resize(glass, (gw, gh))
    img = over_img(img, img_over_new, x, y+int(h*1/3))
    # cv2.rectangle(img, (x, y), (x + w, y + h), (0, 0, 255), 5)
cv2.imshow("screen", img)
cv2.waitKey()
cv2.destroyAllWindows()

效果图:

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

结束语:

上面是我五个室友的合照。当时因为有一个算法比赛,我在寝室里备战算法竞赛,所以没和室友一起出去,所以上面的合照没有我。后面我有时间,一定要把我自己P上去!!

最后,祝所有奋斗的人都能收获到好的结果。文章来源地址https://www.toymoban.com/news/detail-420575.html

到了这里,关于OpenCv人脸检测技术-(实现抖音特效-给人脸戴上墨镜)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于 OpenCV 的车辆变道检测,计算机视觉+图像处理技术

    本期教程我们将和小伙伴们一起研究如何使用计算机视觉和图像处理技术来检测汽车在行驶中时汽车是否在改变车道!大家一定听说过使用 OpenCV 的 haar 级联文件可以检测到面部、眼睛等,但是如果目标是汽车,公共汽车呢? 01. 数据集 我们将道路上汽车的视频文件用作数据

    2024年01月25日
    浏览(50)
  • 【OpenCV】告别人工目检:深度学习技术引领工业品缺陷检测新时代

    目录 前言 机器视觉 缺陷检测 工业上常见缺陷检测方法 内容简介 作者简介 目录 读者对象 如何阅读本书 获取方式 前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。 点击跳转到网站 机器视觉 机器视觉是使用各种工业相机,结

    2024年02月04日
    浏览(39)
  • OpenCV | 告别人工目检:深度学习技术引领工业品缺陷检测新时代

    机器视觉是使用各种工业相机,结合传感器跟电气信号实现替代传统人工,完成对象识别、计数、测量、缺陷检测、引导定位与抓取等任务。其中工业品的缺陷检测极大的依赖人工完成,特别是传统的3C制造环节,产品缺陷检测依赖于人眼睛来发现与检测,不仅费时费力还面

    2024年02月04日
    浏览(32)
  • 第三篇【传奇开心果短博文系列】Python的OpenCV库技术点案例示例:物体检测与识别

    物体检测与识别:包括人脸识别、目标检测、目标跟踪等功能。OpenCV OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉库,提供了丰富的图像处理和计算机视觉算法。在物体检测与识别领域,OpenCV可以用于实现包括人脸识别、目标检测、目标跟踪等功能。 以下是一

    2024年01月25日
    浏览(39)
  • 概念解析 | 利用MIMO雷达技术实现高性能目标检测的关键技术解析

    注1:本文系“概念解析”系列之一,致力于简洁清晰地解释、辨析复杂而专业的概念。本次辨析的概念是:MIMO雷达目标检测技术 参考资料:何子述, 程子扬, 李军, 等. 集中式 MIMO 雷达研究综述[J]. 雷达学报, 2022, 11(5): 805-829. 随着雷达技术的发展,MIMO(Multiple Input Multiple Output)雷达体

    2024年02月14日
    浏览(27)
  • LabVIEW使用边缘检测技术实现彩色图像隐写术

    LabVIEW使用边缘检测技术实现彩色图像隐写术 隐写术是隐藏信息的做法,以隐瞒通信的存在而闻名。该技术涉及在适当的载体(如图像,音频或视频)中插入秘密消息。在这些载体中,数字图像因其在互联网上的广泛使用而受到青睐。LabVIEW软件已用于执行隐写术。本文解释了

    2024年02月13日
    浏览(29)
  • YOLOv5车辆测距实践:利用目标检测技术实现车辆距离估算

    YOLOv5目标检测技术进行车辆测距。相信大家对YOLOv5已经有所了解,它是一种快速且准确的目标检测算法。接下来,让我们一起探讨如何通过YOLOv5实现车辆距离估算。这次的实践将分为以下几个步骤: 安装所需库和工具 数据准备 模型训练 距离估算 可视化结果 优化 1. 安装所需

    2024年02月02日
    浏览(40)
  • C#开发者必备!快速掌握onnxruntime实现YOWOv2视频动作检测技术!

    C#开发者必备!快速掌握onnxruntime实现YOWOv2视频动作检测技术! 目录 介绍 效果 模型信息 项目 代码 Form1.cs YOWOv2.cs 下载 YOWOv2: A Stronger yet Efficient Multi-level Detection Framework for Real-time Spatio-temporal Action 代码实现参考 https://github.com/hpc203/YOWOv2-video-action-detect-onnxrun 训练源码 GitHub

    2024年04月09日
    浏览(45)
  • 图像识别和计算机视觉:如何应用人工智能技术实现自动化检测和识别

      在数字化时代,图像数据成为了我们日常生活中不可或缺的一部分。然而,随着图像数据的急剧增加,传统的手动处理和分析方法已经无法满足我们的需求。这就引出了图像识别和计算机视觉技术的重要性。本文将介绍人工智能技术在图像识别和计算机视觉领域的应用,以

    2024年02月05日
    浏览(71)
  • C++ Qt TCP的心跳检测机制,断线重连技术,应用层代码重新实现

    目录 前言: 一、Qt直接启动本身的KeepAlive 二、在应用层自己实现一个心跳检测  三、自定义心跳代码实现: 完整客户端服务端工程下载: 共用的结构体相关头文件:         客户端部分核心代码:         服务端部分核心代码: 运行结果展示: 前两篇关于qt tcp 相关的,

    2024年02月05日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包