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

免费行情网站大全搜狐网小程序推广平台

免费行情网站大全搜狐网,小程序推广平台,wordpress自媒体模版,石家庄二手房文章目录 前言一、实现思路?二、Coding三、实现效果 前言 前面几篇文章我们尝试了使用opencv完成图像人脸识别以及识别后贴图或者打马赛克的方法。 偶尔我们也会有需求在视频中将人脸马赛克化,opencv也提供了相应的方法来实现这个功能。 一、实现思路&a…

文章目录

  • 前言
  • 一、实现思路?
  • 二、Coding
  • 三、实现效果


前言

前面几篇文章我们尝试了使用opencv完成图像人脸识别以及识别后贴图或者打马赛克的方法。
偶尔我们也会有需求在视频中将人脸马赛克化,opencv也提供了相应的方法来实现这个功能。


一、实现思路?

视频究其本质是图像按照一定的帧率去播放。如果需要将视频中的人脸马赛克化,那么我们可以逐帧输出图像后进行识别人脸再对其马赛克化,最终将所有的图像再按一定的帧率组合播放。

二、Coding

#识别视频人脸并增加马赛克
#实现原理:cv2读取视频后逐帧识别人脸并增加马赛克/贴图,处理完毕后保存视频import cv2
# laod opencv schema
classifier = cv2.CascadeClassifier("haarcascade_frontalface_alt2.xml")#实践下来貌似这个schema匹配度最高
blockimg = "block.jpg"#贴图路径#马赛克化
def do_mosaic(frame, x, y, w, h, neighbor=20):fh, fw = frame.shape[0], frame.shape[1]if (y + h > fh) or (x + w > fw):returnfor i in range(0, h - neighbor, neighbor):  # 关键点0 减去neightbour 防止溢出for j in range(0, w - neighbor, neighbor):rect = [j + x, i + y, neighbor, neighbor]color = frame[i + y][j + x].tolist()  # 关键点1 tolistleft_up = (rect[0], rect[1])right_down = (rect[0] + neighbor - 1, rect[1] + neighbor - 1)  # 关键点2 减去一个像素cv2.rectangle(frame, left_up, right_down, color, -1)#贴图处理
def do_blockpic(frame, x, y, w, h):resizeimg = cv2.imread(blockimg)resizeimg_f = cv2.resize(resizeimg,(w,h))frame[y:y+h, x:x+w] = resizeimg_f#识别人脸
def do_identifyFace(frame):color = (0, 255, 0)gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)  # convert to grey# begin to identify facefaceRects = classifier.detectMultiScale(gray, scaleFactor=1.3, minNeighbors=3, minSize=(32, 32))if len(faceRects):  # get faces if above zerofor faceRect in faceRects:  # loop each facex, y, w, h = faceRect#do_blockpic(frame, x, y, w, h)do_mosaic(frame, x, y, w, h)#main starts
srcVideo = "srcVideo.mp4"#源视频
savedVideo = "savedVideo.mp4"#处理后的视频
cap = cv2.VideoCapture(srcVideo)if not cap.isOpened():print("error to open source video")exit()print("got source video")
w = cap.get(cv2.CAP_PROP_FRAME_WIDTH)
h = cap.get(cv2.CAP_PROP_FRAME_HEIGHT)
fps = cap.get(cv2.CAP_PROP_FPS)
fcount = cap.get(cv2.CAP_PROP_FRAME_COUNT)
print("total frames %s"%fcount)#获取所有帧数
writer = cv2.VideoWriter(savedVideo, cv2.VideoWriter_fourcc('m', 'p', '4', 'v'), int(fps), (int(w), int(h)))print("start handle source video")
i = 0
while cap.isOpened():success, frame = cap.read()while success:do_identifyFace(frame)print("finish frame %s"%i)writer.write(frame)#cv2.imwrite("frame%s.jpg"%i, frame)i += 1success, frame = cap.read()if (cv2.waitKey(20) & 0xff) == ord('q'):breakcap.release()print("finish handle source video")
writer.release()
cv2.destroyAllWindows()

三、实现效果

处理后的视频效果

http://www.yayakq.cn/news/213210/

相关文章:

  • 网站的种类传奇如何做网站
  • 惠州建设工程造价管理协会网站做网站怎么融资
  • 网站悬挂备案号电子商务网站建设外包服务的企业
  • 网站制作的合同关于用户网站建设的论文
  • 电子商务网站建设文案天津定制网站建设商店设计
  • 毕节市网站建设定制wordpress主题多少钱
  • 沈阳网站建站wordpress ping optimizer
  • 网站搭建就来徐州百度网络非常好crm排名
  • 商贸公司网站建设五百人建站
  • 济南做网站软件做网站网页的公司
  • 长春网站建设团队四合一网站建设
  • 燕郊个人做网站临沂做商城网站的公司
  • 专做hip hop音乐的网站百度公司做网站优化多少钱
  • 移动网站二级域名m开头怎么做广州网站建设定制多少钱
  • onedrive做网站下载盘wordpress 文章 作者
  • 网站开发前端兼职无锡网站设计无锡网站建设
  • h5网站动画怎么做开发公司清除地上树木侵犯了谁的权利
  • 政务网站平台建设 招标住建厅官网证件查询
  • 建设银行网站链接怎么做网络推广营销
  • 网站开发专业培训学校辅料企业网站建设费用
  • 学校网站建设调查表随州做网站
  • 东莞品牌网站建设费用如何做网站水晶头
  • 石家庄桥西区网站建设有什么手机网站
  • 企业网站的建立多少钱购物网站开发可行性
  • 在linux系统上用什么做网站h5网站开发软件下载
  • 网站建设域名申请wordpress插件放在主题的哪里
  • 成都网站制作费用交互型网站
  • 谷歌优化 网站建设济南做网站的好公司
  • 建设银行深圳天健世纪支行网站梭子手做鱼网站
  • 网站获取访客qq号品牌策划与推广实训报告