平安夜,Python送你一顶圣诞帽 @微信官方

还有多少耿直boy和我一样在等待微信官方送上一顶圣诞帽?

最后知道真相的我眼泪掉下来

(还蒙在鼓里的同学请在微信最上方的搜索栏自行搜索『圣诞帽』)

好吧,你不给,咱自己来,不就是个帽子嘛。

Python 在手,圣诞帽我有!

OpenCV 库加上几张圣诞帽图片,三四十行代码轻松搞定。只不过调试的时候要注意点,图像坐标和像素矩阵索引的维度别搞乱了。

大致步骤:

  1. 安装 OpenCV(网上搜下教程有很多);
  2. 用 OpenCV 提供的级联分类器做人脸检测,定位出图片中的人脸位置;
  3. 根据找出的人脸,调整圣诞帽的位置和大小,叠加到原图片上;
  4. 遍历所有人脸,重复执行步骤3,过程中可随机变换帽子的样式;
  5. 保存图片。

OpenCV 人脸检测代码:

import cv2

# OpenCV 人脸检测
face_patterns = cv2.CascadeClassifier(
    'haarcascade_frontalface_default.xml'
)
sample_image = cv2.imread('img/face2.jpg')
faces = face_patterns.detectMultiScale(
    sample_image,
    scaleFactor=1.1,
    minNeighbors=8,
    minSize=(50, 50)
)

源代码已上传,公众号(Crossin的编程教室)中回复 圣诞帽 可获取下载地址。

  • 代码问题请在论坛 bbs.crossincode.com 上发帖提问
  • 点击文章最下方的“阅读原文”,查看更多学习资源
  • 别忘了将我们的文章转发朋友圈或在知乎上为我们的专栏点赞,你们的支持将会让编程教室做得更好:)

原文发布于微信公众号 - Crossin的编程教室(crossincode)

原文发表时间:2017-12-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏生信宝典

分子对接简明教程 (一)

分子对接(Molecular Docking)理论 所谓分子对接就是两个或多个分子之间通过几何匹配和能量匹配相互识别找到最佳匹配模式的过程。分子对接对酶学研究和...

904100
来自专栏Y大宽

RIsearch2使用方法-预测RNA-RNA互作(sRNA的靶基因)

非编码RNA经常和其它RNAs形成配对(双链)发挥其作用。这些RNA-RNA相互作用都是建立在碱基互补配对的基础上,两个RNA序列之间的高度互补是这种相互作用的...

36120
来自专栏AI研习社

一文详解如何用 R 语言绘制热图

AI 研习社按:作为目前最常见的一种可视化手段,热图因其丰富的色彩变化和生动饱满的信息表达被广泛应用于各种大数据分析场景。同时,专用于大数据统计分析、绘图和可视...

59860
来自专栏AI研习社

Github 项目推荐 | Nvidia 用于数据增强和 JPEG 图像解码的 GPU 加速库 DALI

今天的深度学习应用程序包括复杂的多阶段预处理数据流水线,其中包括主要在 CPU 上执行的计算密集型步骤。例如,在 CPU 上执行诸如从磁盘加载数据、解码、剪裁、...

29920
来自专栏吉浦迅科技

当Intel的神经棒遇到NVIDIA的Jetson TX2

1.5K50
来自专栏不止思考

网络中的「动态路由算法」,你了解吗?

在计算机网络中,路由器的一个很重要责任就是要在端对端的节点中找出一条最佳路径出来,通过自己与相邻节点之间的信息,来计算出从自己位置到目的节点之间的最佳线路,这种...

23750
来自专栏AI科技大本营的专栏

Dropbox如何使用机器学习从数十亿图片中自动提取文字

【导读】提到 Dropbox,大家可能都知道这是一个文件同步、备份、共享的云存储软件。其实 Dropbox 可以实现的功能远不止这些。今天就为大家介绍 Drop...

36820
来自专栏ATYUN订阅号

构建自定义人脸识别数据集的三种训练方法

在接下来的几篇文章中,我们将训练计算机视觉+深度学习模型来进行面部识别。在此之前,我们首先需要收集脸部数据集。

29230
来自专栏AI科技评论

开发 | TensorFlow Agents日前开源,轻松在TF中构建并行强化学习算法

AI科技评论消息,用于在TensorFlow中构建并行强化学习算法的高效基础架构范例TensorFlow Agents日前开源,这个项目是由谷歌的两位研究员Ja...

37490
来自专栏软件开发 -- 分享 互助 成长

SQL中查询优化的主要策略

为了能提高查询效率按优先级主要有一下策略: 1、尽可能早的执行选择操作(最基本的一条) 2、把笛卡尔积和随后的选择操作合并成F连接运算 3、同时计算一连串的选择...

21590

扫码关注云+社区

领取腾讯云代金券