当前位置: 首页 > news >正文

分红网站建设/seo比较好的公司

分红网站建设,seo比较好的公司,网页游戏平台系统,委托建站公司塔山双喜如今美颜相机非常流行,作为钢铁直男,我不关注如何让自己美颜更加好看,我更加关注如何实现这个功能呢?在这里我们不计划使用复杂的深度学习等人工智能的算法实现(其实使用了),我们这里使用pythonopencv来实现此功能,直接开始:一、环…

如今美颜相机非常流行,作为钢铁直男,我不关注如何让自己美颜更加好看,我更加关注如何实现这个功能呢?

在这里我们不计划使用复杂的深度学习等人工智能的算法实现(其实使用了),我们这里使用python+opencv来实现此功能,直接开始:

一、环境需求

1、python

2、opencv

3、pillow

二、具体实现

为了实现这个方法,初步构造我计划使用3步实现此功能,简单直接实时捕捉视频,人脸识别,添加头像

1、实时捕捉摄像头

opencv已经提供了很好的方法可以实现录像功能,直接上代码:

import numpy as np

import cv2

cap = cv2.VideoCapture(0)

videoWriter = cv2.VideoWriter('output.avi',cv2.VideoWriter_fourcc(*'MJPG'), 15, (640,480))

while(cap.isOpened()):

ret, frame = cap.read()

if ret==True:

frame = cv2.flip(frame,0)

videoWriter.write(frame)

cv2.imshow('frame',frame)

if cv2.waitKey(1) & 0xFF == ord('q'):

break

else:

break

# Release everything if job is finished

cap.release()

videoWriter.release()

cv2.destroyAllWindows()

如上代码每秒获取15张图片保存为视频。

2、人脸识别

懂视频的人都知道,视频是按照每帧图片合成在一起的,所以我的构思就是要实现视频人脸识别,就对每张图片进行识别。

import numpy as np

import cv2

img = cv2.imread('sachin.jpg')

# 人脸识别数据

face_cascade = cv2.CascadeClassifier('/usr/local/Cellar/opencv/4.0.1/share/opencv4/haarcascades/haarcascade_frontalface_default.xml')

# 人眼识别数据

eye_cascade = cv2.CascadeClassifier('/usr/local/Cellar/opencv/4.0.1/share/opencv4/haarcascades/haarcascade_eye.xml')

# 二值化,变为灰度图

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# 获取人脸识别数据

faces = face_cascade.detectMultiScale(gray, 1.3, 5)

for (x,y,w,h) in faces:

# 绘画人脸识别数据

img = cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)

roi_gray = gray[y:y+h, x:x+w]

roi_color = img[y:y+h, x:x+w]

eyes = eye_cascade.detectMultiScale(roi_gray)

for (ex,ey,ew,eh) in eyes:

cv2.rectangle(roi_color,(ex,ey),(ex+ew,ey+eh),(0,255,0),2)

cv2.imshow('img',img)

cv2.waitKey(0)

cv2.destroyAllWindows()

如上代码我们进行了单张图片进行人脸识别,最终绘制人脸范围,大家可以修改自己的人脸识别数据文件地址和眼睛数据地址。

3、python+opencv实现添加贴纸

具体这个叫啥名字我也不清楚了,就是在视频中添加帽子啊,雪糕啊啥的,然后我的实现方式是:根据人脸识别数据,在头的上方添加贴纸 ,就是这么简单,其实就是一个添加水印的功能。

我们这里使用pillow进行水印的添加,当然也可以只使用opencv添加,不过我在实现时效果不是很好,如下是python添加图片水印的方法。

from PIL import Image

im = Image.open("1.jpg")

mark=Image.open("2.jpg")

layer=Image.new('RGBA', im.size, (0,0,0,0))

layer.paste(mark, (0,0))

out=Image.composite(layer,im,layer)

out.show()

三、最终代码与效果

import numpy as np

import cv2

import time

import datetime

from PIL import Image

cap = cv2.VideoCapture(0)

''' 人脸识别 '''

def getface(img):

# 人脸识别数据

face_cascade = cv2.CascadeClassifier('/usr/local/Cellar/opencv/4.0.1/share/opencv4/haarcascades/haarcascade_frontalface_default.xml')

# 人眼识别数据

eye_cascade = cv2.CascadeClassifier('/usr/local/Cellar/opencv/4.0.1/share/opencv4/haarcascades/haarcascade_eye.xml')

# 二值化,变为灰度图

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# 获取人脸识别数据

faces = face_cascade.detectMultiScale(gray, 1.3, 5)

for (x,y,w,h) in faces:

# 绘画人脸识别数据

img = cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)

# 根据人脸识别数据添加头像

img = christmas(img,x,y,w,h)

return img

def christmas(img,x,y,w,h):

im = Image.fromarray(cv2.cvtColor(img,cv2.COLOR_BGR2RGB))

# 你的贴纸地址

mark=Image.open("hat/2.png")

height = int(w*987/1024)

mark = mark.resize((w, height))

layer=Image.new('RGBA', im.size, (0,0,0,0))

layer.paste(mark, (x,y-height))

out=Image.composite(layer,im,layer)

img = cv2.cvtColor(np.asarray(out),cv2.COLOR_RGB2BGR)

return img

videoWriter = cv2.VideoWriter('testwrite.avi', cv2.VideoWriter_fourcc(*'MJPG'), 15, (1000,563))

while(cap.isOpened()):

ret, frame = cap.read()

if ret==True:

# 从新定义图片大小

img = cv2.resize(frame,(1000,563))

# 添加录像时间

# img = addtime(img)

# 实时识别

img = getface(img)

# 视频显示

cv2.imshow('frame',img)

# 保存视频

videoWriter.write(img)

if cv2.waitKey(10) & 0xFF == ord('q'):

print("退出视频")

break

else:

break

cap.release()

videoWriter.release()

cv2.destroyAllWindows()

如上我们实现效果如下图,单张图添加贴纸就更简单的,大家改改代码就可以了。

图片素材来自百度。

原创文章,转载请注明 :[python美颜系列一] python使用opencv给视频/图片添加萌萌哒贴纸 - pytorch中文网

原文出处: https://ptorch.com/news/242.html

问题交流群 :168117787

http://www.lbrq.cn/news/1534807.html

相关文章:

  • 免费手机版网站建设/我们公司在做网站推广
  • 建设网站需要花钱吗/爱站网影院
  • 专注律师微信网站建设/外链seo推广
  • 网站停留时间/网页制作教程视频
  • 响应式网站用什么软件做效果/alexa排名
  • 交互做的很好的网站/用广州seo推广获精准访问量
  • bex5可以做网站吗/企业宣传方式
  • 网络营销推广方式有几种/网站应该如何进行优化
  • 重庆网站商城/企业网络组建方案
  • 企业门户网站怎么做/英语培训机构
  • 高端网站建设多少钱/找代写文章写手
  • 个人网站模板之家/推广普通话手抄报内容大全
  • 建筑涂料网站设计/哪里做网站便宜
  • 台州招聘网站建设/近期国际新闻热点大事件
  • 房产中介网站建设的目的/seo的理解
  • 祥云网站建设/写软文一篇多少钱合适
  • 织金网站建设/海外推广解决方案
  • 做网站用什么后缀好/关键词调词平台费用
  • 网站宣传专利被罚/乔拓云建站平台
  • 省建设厅网站物业管理/查询网站服务器
  • 网站的方案/肇庆百度快照优化
  • 工业电商做网站怎么样/海门网站建设
  • 网站流量统计表格/搜索引擎技术优化
  • html5 微信网站 源码/阿里云域名注册官网网址
  • 在招聘网站做销售/百度游戏
  • 网页设计师职位要求/seo教程seo官网优化详细方法
  • axure做高保真网站效果图/网站设计公司苏州
  • 网站用oracle做数据库/哪家公司建设网站好
  • 南京华璋建设网站/提高关键词排名的软文案例
  • 兰州企业 网站建设/软文营销成功案例
  • 20250821日记
  • Map 和 Set
  • 【38页PPT】关于5G智慧园区整体解决方案(附下载方式)
  • 华为云服务器(ECS)新手入门:注册、购买与使用实操教程
  • 谷歌为什么要将Android的页面大小(Page Size)从传统的4KB升级至16KB
  • 第4章 React状态管理基础