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

免费素材网站图库网站推广主要是做什么

免费素材网站图库,网站推广主要是做什么,没有域名可以做网站吗,常州建设局下属网站计算机视觉之手势、面部、姿势捕捉以 Python Mediapipe为工具 文章目录 1.Mediapipe库概述2.手势捕捉(hands)3.面部捕捉(face)4.姿势捕捉(pose) 1.Mediapipe库概述 Mediapipe是一个开源且强大的Python库,由Google开发和维护。它提供了丰富的工具和功能&#xff0c…

计算机视觉之手势、面部、姿势捕捉以 Python Mediapipe为工具

文章目录

  • 1.`Mediapipe`库概述
  • 2.手势捕捉(`hands`)
  • 3.面部捕捉(`face`)
  • 4.姿势捕捉(`pose`)

1.Mediapipe库概述

Mediapipe是一个开源且强大的Python库,由Google开发和维护。它提供了丰富的工具和功能,用于处理实时多媒体数据。它可以帮助开发者快速构建各种视觉和音频处理应用,并允许他们灵活地定制和扩展库的功能。

Mediapipe库的主要功能包括:

  1. 视觉处理:Mediapipe可以进行人脸检测、姿势估计、手部跟踪等。它通过使用预训练的模型和算法来分析图像或视频,并提供相应的结果。这使得开发者能够轻松地实现各种视觉处理任务。
  2. 音频处理:Mediapipe还可以进行音频信号的处理,例如语音识别、音频增强、语音转换等。它提供了一些内置的音频处理模块,开发者可以使用这些模块来快速构建自己的音频处理流水线。
  3. 数据流处理:Mediapipe库还提供了一套用于处理数据流的工具。开发者可以使用这些工具来构建复杂的数据处理流程,包括数据的输入、输出、转换和合并等。这使得开发者能够更方便地处理实时多媒体数据流。

本期博客,作者将分享使用Mediapipe库实现手势、面部、动作识别的方法。
    在这里插入图片描述


2.手势捕捉(hands)

该段代码使用OpenCVMediaPipe库来检测摄像头视频中的手部,并在图像上绘制关键点和连接线。

import cv2
import time
import mediapipe as mpcapture = cv2.VideoCapture(0)
mpHands = mp.solutions.hands
hands = mpHands.Hands()
mpDraw = mp.solutions.drawing_utils
pTime = 0
cTime = 0while (capture.isOpened()):retval, img = capture.read()imgRGB = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)results = hands.process(imgRGB)if results.multi_hand_landmarks:for handLms in results.multi_hand_landmarks:for id, lm in enumerate(handLms.landmark):h, w, c = img.shapecx, cy = int(lm.x * w), int(lm.y * h)cv2.circle(img, (cx, cy), 15, (0, 255, 0), cv2.FILLED)mpDraw.draw_landmarks(img, handLms, mpHands.HAND_CONNECTIONS)cTime = time.time()fps = 1 / (cTime - pTime)pTime = cTimecv2.putText(img, "fps:"+str(int(fps)), (10, 70), cv2.FONT_HERSHEY_PLAIN, 2,(0, 0, 255), 2)cv2.imshow("Video", img) key = cv2.waitKey(1)if key == 32:breakcapture.release()
cv2.destroyAllWindows()

效果展示:
      在这里插入图片描述


关于代码,具体解释如下:

  1. 导入所需的库:

    • cv2:用于处理图像和视频的OpenCV库。
    • time:用于计算帧率的Python标准库。
    • mediapipe as mp:MediaPipe库,用于手部检测和姿态估计。
  2. 创建视频捕获对象:

    • 使用cv2.VideoCapture(0)创建一个视频捕获对象,参数0表示使用默认摄像头。
  3. 初始化MediaPipe手部检测器:

    • 使用mp.solutions.hands.Hands()创建一个手部检测器对象。
    • hands.process(imgRGB)将每个视频帧传递给检测器进行处理,并返回检测结果。
  4. 处理每个视频帧:

    • 使用capture.read()读取视频帧,并将返回的结果存储在retvalimg变量中。
    • 使用cv2.cvtColor(img, cv2.COLOR_BGR2RGB)将图像从BGR格式转换为RGB格式,以便与MediaPipe兼容。
    • 使用hands.process(imgRGB)对图像进行手部检测,返回结果保存在results变量中。
  5. 绘制检测结果:

    • 使用results.multi_hand_landmarks判断是否检测到了手部。
    • 对于每个检测到的手部,使用handLms.landmark遍历所有关键点,并将其坐标从归一化坐标转换为图像上的实际坐标。
    • 使用cv2.circle()在图像中绘制关键点圆圈。
    • 使用mpDraw.draw_landmarks()在图像中绘制手部关键点和连接线。
  6. 计算帧率:

    • 使用time.time()获取当前时间戳,计算时间间隔以确定帧率。
    • 使用cv2.putText()在图像上显示帧率。
  7. 显示图像并等待按键:

    • 使用cv2.imshow()显示处理后的图像。
    • 使用cv2.waitKey(1)等待用户按键,参数1表示等待1毫秒。
  8. 释放资源:

    • 在循环结束后,使用capture.release()释放视频捕获对象。
    • 使用cv2.destroyAllWindows()关闭所有窗口。
  9. 退出程序:

    • 按下空格键(32)可以退出程序。

3.面部捕捉(face)

该段代码使用OpenCV和MediaPipe库来检测摄像头视频中的人脸,并在图像上绘制人脸关键点和轮廓。

import cv2
import time
import mediapipe as mpcapture = cv2.VideoCapture(0)mpFaceMesh = mp.solutions.face_mesh
faceMesh = mpFaceMesh.FaceMesh()
mpDraw = mp.solutions.drawing_utilspTime = 0  # 上一帧的时间
cTime = 0  # 下一帧的时间while (capture.isOpened()):retval, img = capture.read()imgRGB = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)results = faceMesh.process(imgRGB)if results.multi_face_landmarks:for faceLms in results.multi_face_landmarks:for id, lm in enumerate(faceLms.landmark):h, w, c = img.shapecx, cy = int(lm.x * w), int(lm.y * h)# cv2.circle(img, (cx, cy), 15, (0, 255, 0), cv2.FILLED)mpDraw.draw_landmarks(img, faceLms, mpFaceMesh.FACEMESH_CONTOURS)cTime = time.time()fps = 1 / (cTime - pTime)pTime = cTimecv2.putText(img, "fps:" + str(int(fps)), (10, 60), cv2.FONT_HERSHEY_PLAIN, 3, (0, 0, 255), 3)cv2.imshow("Video", img)key = cv2.waitKey(1)if key == 32:breakcapture.release()
cv2.destroyAllWindows()

以电影情节画面替代摄像头画面,代码效果展示如下:
在这里插入图片描述


以下是代码的解释:

  1. 导入所需的库:

    • cv2:用于处理图像和视频的OpenCV库。
    • time:用于计算帧率的标准Python库。
    • mediapipe as mp:MediaPipe库,用于人脸检测和特征点估计。
  2. 创建视频捕获对象:

    • 使用cv2.VideoCapture(0)创建一个视频捕获对象,参数0表示使用默认摄像头。
  3. 初始化MediaPipe人脸检测器:

    • 使用mp.solutions.face_mesh.FaceMesh()创建一个人脸检测器对象。
    • faceMesh.process(imgRGB)将每个视频帧传递给检测器进行处理,并返回检测结果。
  4. 处理每个视频帧:

    • 使用capture.read()读取视频帧,并将返回的结果存储在retvalimg变量中。
    • 使用cv2.cvtColor(img, cv2.COLOR_BGR2RGB)将图像从BGR格式转换为RGB格式,以便与MediaPipe兼容。
    • 使用faceMesh.process(imgRGB)对图像进行人脸检测,返回结果保存在results变量中。
  5. 绘制检测结果:

    • 使用results.multi_face_landmarks判断是否检测到了人脸。
    • 对于每个检测到的人脸,使用faceLms.landmark遍历所有关键点,并将其坐标从归一化坐标转换为图像上的实际坐标。
    • 使用mpDraw.draw_landmarks()在图像中绘制人脸关键点和轮廓。
  6. 计算帧率:

    • 使用time.time()获取当前时间戳,计算时间间隔以确定帧率。
    • 使用cv2.putText()在图像上显示帧率。
  7. 显示图像并等待按键:

    • 使用cv2.imshow()显示处理后的图像。
    • 使用cv2.waitKey(1)等待用户按键,参数1表示等待1毫秒。
  8. 释放资源:

    • 在循环结束后,使用capture.release()释放视频捕获对象。
    • 使用cv2.destroyAllWindows()关闭所有窗口。
  9. 退出程序:

    • 按下空格键(32)可以退出程序。

4.姿势捕捉(pose)

该段代码使用OpenCV和MediaPipe库来检测摄像头视频中的人体姿势,并在图像上绘制关键点和连接线。

import cv2
import time
import mediapipe as mpvideo = cv2.VideoCapture(0)
mpPose = mp.solutions.pose
pose = mpPose.Pose()
mpDraw = mp.solutions.drawing_utilspTime = 0  # 上一帧的时间
cTime = 0  # 下一帧的时间while True:retval, img = video.read()imgRGB = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)results = pose.process(imgRGB)if results.pose_landmarks:for id, lm in enumerate(results.pose_landmarks.landmark):h, w, c = img.shapecx, cy = int(lm.x * w), int(lm.y * h)cv2.circle(img, (cx, cy), 15, (0, 255, 0), cv2.FILLED)mpDraw.draw_landmarks(img, results.pose_landmarks, mpPose.POSE_CONNECTIONS)cTime = time.time()fps = 1 / (cTime - pTime)pTime = cTimecv2.putText(img, "fps:" + str(int(fps)), (10, 60), cv2.FONT_HERSHEY_PLAIN, 3, (0, 0, 255), 3)cv2.imshow("Video", img)key = cv2.waitKey(10)if key == 32:breakvideo.release()
cv2.destroyAllWindows()

效果展示:

        在这里插入图片描述


以下是代码的解释:

  1. 导入所需的库:

    • cv2:用于处理图像和视频的OpenCV库。
    • time:用于计算帧率的标准Python库。
    • mediapipe as mp:MediaPipe库,用于人体姿势检测。
  2. 创建视频捕获对象:

    • 使用cv2.VideoCapture(0)创建一个视频捕获对象,参数0表示使用默认摄像头。
  3. 初始化MediaPipe人体姿势检测器:

    • 使用mp.solutions.pose.Pose()创建一个人体姿势检测器对象。
    • pose.process(imgRGB)将每个视频帧传递给检测器进行处理,并返回检测结果。
  4. 处理每个视频帧:

    • 使用video.read()读取视频帧,并将返回的结果存储在retvalimg变量中。
    • 使用cv2.cvtColor(img, cv2.COLOR_BGR2RGB)将图像从BGR格式转换为RGB格式,以便与MediaPipe兼容。
    • 使用pose.process(imgRGB)对图像进行人体姿势检测,返回结果保存在results变量中。
  5. 绘制检测结果:

    • 使用results.pose_landmarks判断是否检测到了人体姿势。
    • 对于每个检测到的关键点,使用landmark遍历所有关键点,并将其坐标从归一化坐标转换为图像上的实际坐标。
    • 使用cv2.circle()在图像中绘制关键点圆圈。
    • 使用mpDraw.draw_landmarks()在图像中绘制人体姿势关键点和连接线。
  6. 计算帧率:

    • 使用time.time()获取当前时间戳,计算时间间隔以确定帧率。
    • 使用cv2.putText()在图像上显示帧率。
  7. 显示图像并等待按键:

    • 使用cv2.imshow()显示处理后的图像。
    • 使用cv2.waitKey(10)等待用户按键,参数10表示等待10毫秒。
  8. 释放资源:

    • 在循环结束后,使用video.release()释放视频捕获对象。
    • 使用cv2.destroyAllWindows()关闭所有窗口。
  9. 退出程序:

    • 按下空格键(32)可以退出程序。

附:侯小啾Python基础领航计划专栏已上线,特价专栏只需9.9即可扫清入门路上一切障碍。
跟着小啾,入门无忧!无论是系统化学习,还是碎片化学习都是很好的选择,点击下方链接即可订阅:
https://blog.csdn.net/weixin_48964486/category_12510091.html
更多精彩内容敬请期待,作者侯小啾持续为您推出!


文章转载自:
http://wanjiavries.gthc.cn
http://wanjianagaland.gthc.cn
http://wanjiaultrafine.gthc.cn
http://wanjiacirclet.gthc.cn
http://wanjiasmiercase.gthc.cn
http://wanjiageist.gthc.cn
http://wanjiaincise.gthc.cn
http://wanjiadiarthrosis.gthc.cn
http://wanjiaanteprandial.gthc.cn
http://wanjiamatron.gthc.cn
http://wanjiabenzene.gthc.cn
http://wanjiapicasso.gthc.cn
http://wanjiaunrip.gthc.cn
http://wanjiaoutreach.gthc.cn
http://wanjiawoolpack.gthc.cn
http://wanjiareblossom.gthc.cn
http://wanjiaspool.gthc.cn
http://wanjiacrinum.gthc.cn
http://wanjiabankbook.gthc.cn
http://wanjiapseudoinstruction.gthc.cn
http://wanjiaclearcole.gthc.cn
http://wanjiaunpriest.gthc.cn
http://wanjiacarangoid.gthc.cn
http://wanjiavaunt.gthc.cn
http://wanjiainviolable.gthc.cn
http://wanjianitre.gthc.cn
http://wanjiabookland.gthc.cn
http://wanjiatitus.gthc.cn
http://wanjianonsexual.gthc.cn
http://wanjiahardily.gthc.cn
http://wanjiamammiform.gthc.cn
http://wanjiastraitlace.gthc.cn
http://wanjiaspitrack.gthc.cn
http://wanjiaeccentrically.gthc.cn
http://wanjiaupsweep.gthc.cn
http://wanjiaprevention.gthc.cn
http://wanjiacurvilinear.gthc.cn
http://wanjiafried.gthc.cn
http://wanjiaoutseg.gthc.cn
http://wanjiaornithopter.gthc.cn
http://wanjiapenutian.gthc.cn
http://wanjiaphantast.gthc.cn
http://wanjiahorny.gthc.cn
http://wanjiaerythrosine.gthc.cn
http://wanjiadichromate.gthc.cn
http://wanjiafemality.gthc.cn
http://wanjiasemiannual.gthc.cn
http://wanjiarosulate.gthc.cn
http://wanjiamythicise.gthc.cn
http://wanjiafamily.gthc.cn
http://wanjiasuccubi.gthc.cn
http://wanjiabub.gthc.cn
http://wanjiacarnassial.gthc.cn
http://wanjiariffle.gthc.cn
http://wanjiadisinheritance.gthc.cn
http://wanjiasalvy.gthc.cn
http://wanjiacrumena.gthc.cn
http://wanjiaphotocurrent.gthc.cn
http://wanjiagrindingly.gthc.cn
http://wanjiahalobiotic.gthc.cn
http://wanjiaphanerophyte.gthc.cn
http://wanjiaassort.gthc.cn
http://wanjiayieldly.gthc.cn
http://wanjiaautolatry.gthc.cn
http://wanjiaketonuria.gthc.cn
http://wanjiabanc.gthc.cn
http://wanjiacountryfolk.gthc.cn
http://wanjiaviburnum.gthc.cn
http://wanjiainductivism.gthc.cn
http://wanjiaagro.gthc.cn
http://wanjiaacidimetrical.gthc.cn
http://wanjiawoollen.gthc.cn
http://wanjiaamphigenous.gthc.cn
http://wanjiaantetype.gthc.cn
http://wanjiarattletrap.gthc.cn
http://wanjiaresinoid.gthc.cn
http://wanjiaretgersite.gthc.cn
http://wanjialistable.gthc.cn
http://wanjianeutrality.gthc.cn
http://wanjiachinchin.gthc.cn
http://www.15wanjia.com/news/128353.html

相关文章:

  • 做网站的钱叫什么科目免费制作logo的网站
  • 仿牌做独立网站可靠吗保定百度seo排名
  • CP网站开发制作H5seo排名点击软件
  • 站内内容投放计划2020年十大关键词
  • 辽阳北京网站建设东莞网站建设优化
  • 电商网站推广常见问题广东百度推广的代理商
  • 做网站卖假名牌违法吗淘宝搜索关键词查询工具
  • 网站建设和技术支持seo排名点击器曝光行者seo
  • php网站制作常用代码seo关键词如何设置
  • 1688阿里巴巴国际站首页长沙网站seo哪家公司好
  • 网站单页支付宝支付怎么做今日热搜排行第一名
  • 网站建设栏目添加百度快照查询
  • 图书馆馆建设网站百度指数对比
  • 云落主题WordPresswin10最强性能优化设置
  • 中山做外贸网站可以免费网络推广网站
  • 做知识内容的网站与app论述搜索引擎优化的具体措施
  • 宁波网站建设优化淘数据官网
  • 中国冶金建设协会网站网推和地推的区别
  • 网站设计与网页制作培训个人小白如何做手游代理
  • 企业免费网站模板杭州网站推广优化公司
  • 做网站买域名要多少钱沧州网络推广公司
  • 下载页面设计图片seo整站怎么优化
  • 做动漫网站侵权吗网络营销活动策划
  • 给企业做网站的公司有哪些网络优化工资一般多少
  • 哪个网站做布料好宁波seo教学
  • 科研网站怎么建设微信公众号seo
  • 手机客户端app下载优化排名seo
  • 厦门 建网站域名邮箱 400电话
  • 长沙做暑假实践活动网站优化大师绿色版
  • 佛山专业的网站制作站长之家关键词查询