设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
查看: 12405|回复: 0
打印 上一主题 下一主题

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

[复制链接]

6

主题

0

好友

32

积分

新手上路

Rank: 1

跳转到指定楼层
楼主
发表于 2017-12-25 09:52:31 |只看该作者 |倒序浏览
本帖最后由 Megan 于 2017-12-25 09:52 编辑

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

                                                                                                                                                                                     作者:Crossin先生


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


v2-2325041fadda105fa4ba869805d7424c_hd.jpg



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


v2-7e5a6a4d0ac94f0129a7cba1154be0ef_hd.jpg


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

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


Python 在手,圣诞帽我有!


v2-e9e73677e82129b36f48795b3d1ae730_hd.jpg


v2-d39ee02a98243890bb024677e498dd86_hd.jpg


v2-b69a47a696e7195d19db6e5284d52c09_hd.jpg



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


v2-ae2379dd2201795156b99c309a9282f7_hd.jpg


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

OpenCV 人脸检测代码:
  1. import cv2

  2. # OpenCV 人脸检测
  3. face_patterns = cv2.CascadeClassifier(
  4.     'haarcascade_frontalface_default.xml'
  5. )
  6. sample_image = cv2.imread('img/face2.jpg')
  7. faces = face_patterns.detectMultiScale(
  8.     sample_image,
  9.     scaleFactor=1.1,
  10.     minNeighbors=8,
  11.     minSize=(50, 50)
  12. )
复制代码
源代码已上传,公众号(Crossin的编程教室)中回复 圣诞帽 可获取下载地址。



Crossin的编程教室

微信公众号ID:crossincode




5b886398336f8058c0ecafdc5d85c857_hd.jpg


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-11-23 16:43 , Processed in 0.017200 second(s), 24 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部