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

自己做网站推广费用大电子商务是干什么的

自己做网站推广费用大,电子商务是干什么的,怎么查询网站是否收录,企业简介优势项目案例等推广本项目是使用了谷歌开源的框架mediapipe,里面有非常多的模型提供给我们使用,例如面部检测,身体检测,手部检测等。 手势识别系列文章 1.opencv实现手部追踪(定位手部关键点) 2.opencv实战项目 实现手势跟踪…

 本项目是使用了谷歌开源的框架mediapipe,里面有非常多的模型提供给我们使用,例如面部检测,身体检测,手部检测等。

手势识别系列文章

1.opencv实现手部追踪(定位手部关键点)

2.opencv实战项目 实现手势跟踪并返回位置信息(封装调用)

3.手势识别-手势音量控制(opencv)

4.opencv实战项目 手势识别-手势控制鼠标

未完待续...

在这里插入图片描述

 代码需要用到opencv   HandTraqckModule模块   mediapipe模块和一个音量控制模块

AndreMiras/pycaw: Python Core Audio Windows Library (github.com) 音量控制模块的作者,有兴趣可以了解

手部追踪模块来自前期的我们实战内容opencv 实现手势跟踪并返回位置信息(封装调用)_陈子迩的博客-CSDN博客

下面给大家详细说一下代码

import cv2
import time
import numpy as np
from HandTraqckModule import *
import math
from comtypes import CLSCTX_ALL
from pycaw.pycaw import AudioUtilities, IAudioEndpointVolume

这些行导入了所需的库和模块:

  • cv2: OpenCV 库,用于图像处理和显示。
  • time: Python 标准库,用于处理时间操作。
  • numpy: 数值计算库,用于插值计算。
  • HandTraqckModule: 自定义的手部追踪模块(你的代码中似乎有个拼写错误,正确的应该是 HandTrackModule)。
  • math: Python 标准库,用于数学计算。
  • comtypes: 用于处理 COM 接口的库。
  • pycaw: 用于访问 Windows 音频控制接口的库。
  • devices = AudioUtilities.GetSpeakers()
    interface = devices.Activate(IAudioEndpointVolume._iid_, CLSCTX_ALL, None)
    volume = interface.QueryInterface(IAudioEndpointVolume)
    volRange = volume.GetVolumeRange()
    minVol = volRange[0]
    maxVol = volRange[1]
    

  • 这部分代码获取了默认音频输出设备的信息,并通过 pycaw 库设置了音量范围、最小音量和最大音量。

  • wCam, hCam = 1280, 720
    cap = cv2.VideoCapture(0)
    cap.set(3, wCam)
    cap.set(4, hCam)
    

    这里设置了摄像头的分辨率,并通过 OpenCV 打开摄像头。

pTime = 0
detector = handDetector(detectionCon=0.7)

初始化了上一帧的时间 pTime,并创建了 handDetector 类的实例 detector,设置了手势检测的置信度阈值为 0.7。

while True:success, img = cap.read()img = detector.findHands(img)lmList = detector.findPosition(img, draw=False)if len(lmList) != 0:# 从手部标记点列表中获取两个指尖的坐标x1, y1 = lmList[4][1], lmList[4][2]x2, y2 = lmList[8][1], lmList[8][2]cx, cy = (x1 + x2) // 2, (y1 + y2) // 2# 绘制手势标记和连接线cv2.circle(img, (x1, y1), 15, (255, 255, 0), cv2.FILLED)cv2.circle(img, (x2, y2), 15, (255, 0, 0), cv2.FILLED)cv2.line(img, (x1, y1), (x2, y2), (255, 0, 0), 3)cv2.circle(img, (cx, cy), 10, (255, 255, 0), cv2.FILLED)# 计算手势长度length = math.hypot(x2 - x1, y2 - y1)# 映射手势长度到音量范围vol = np.interp(length, [10, 230], [minVol, maxVol])print(int(length), int(vol))# 设置系统音量volume.SetMasterVolumeLevel(vol, None)# 如果手势长度小于一定阈值,绘制一个圆圈表示手势过小if length < 50:cv2.circle(img, (cx, cy), 15, (255, 100, 100), cv2.FILLED)cTime = time.time()fps = 1 / (cTime - pTime)pTime = cTime# 绘制帧率信息cv2.putText(img, f'FPS:{int(fps)}', (40, 40), cv2.FONT_HERSHEY_PLAIN, 3, (255, 255, 0), 3)# 显示图像cv2.imshow('img', img)cv2.waitKey(1)

这部分代码是主要的处理循环,它会不断地从摄像头捕获图像,然后使用 detector 对象进行手部检测和标记绘制。随后,通过手指标记点的坐标计算手势的长度,并将这个长度映射到音量范围,然后设置系统音量。如果手势长度小于阈值,会在图像上绘制一个圆圈来表示手势过小。最后,还会绘制帧率信息并显示图像。

下面附上全部代码

总体代码

import cv2
import time
import numpy as np
from HandTraqckModule import *
import math
from comtypes import CLSCTX_ALL
from pycaw.pycaw import AudioUtilities, IAudioEndpointVolume# 获取默认音频输出设备
devices = AudioUtilities.GetSpeakers()
interface = devices.Activate(IAudioEndpointVolume._iid_, CLSCTX_ALL, None)
volume = interface.QueryInterface(IAudioEndpointVolume)
# 获取音量范围
volRange = volume.GetVolumeRange()
minVol = volRange[0]
maxVol = volRange[1]# 设置摄像头分辨率
wCam, hCam = 1280, 720# 打开摄像头
cap = cv2.VideoCapture(0)
cap.set(3, wCam)
cap.set(4, hCam)pTime = 0
detector = handDetector(detectionCon=0.7)while True:success, img = cap.read()img = detector.findHands(img)lmList = detector.findPosition(img, draw=False)if len(lmList) != 0:x1, y1 = lmList[4][1], lmList[4][2]x2, y2 = lmList[8][1], lmList[8][2]cx, cy = (x1 + x2) // 2, (y1 + y2) // 2# 绘制手势标记和连接线cv2.circle(img, (x1, y1), 15, (255, 255, 0), cv2.FILLED)cv2.circle(img, (x2, y2), 15, (255, 0, 0), cv2.FILLED)cv2.line(img, (x1, y1), (x2, y2), (255, 0, 0), 3)cv2.circle(img, (cx, cy), 10, (255, 255, 0), cv2.FILLED)# 计算手势长度length = math.hypot(x2 - x1, y2 - y1)# 映射手势长度到音量范围vol = np.interp(length, [10, 230], [minVol, maxVol])print(int(length), int(vol))# 设置系统音量volume.SetMasterVolumeLevel(vol, None)# 如果手势长度小于一定阈值,绘制一个圆圈表示手势过小if length < 50:cv2.circle(img, (cx, cy), 15, (255, 100, 100), cv2.FILLED)cTime = time.time()fps = 1 / (cTime - pTime)pTime = cTime# 绘制帧率信息cv2.putText(img, f'FPS:{int(fps)}', (40, 40), cv2.FONT_HERSHEY_PLAIN, 3, (255, 255, 0), 3)# 显示图像cv2.imshow('img', img)cv2.waitKey(1)

http://www.wooajung.com/news/30380.html

相关文章:

  • 有没有做衣服的网站steam交易链接在哪看
  • 深圳布吉做网站西安最新消息今天
  • 外贸b2c网站建设大二网页设计作业成品
  • 怎么创建收费网站有域名后如何建网站
  • 怎么给自己的网站做排名重庆公司网站seo
  • 玉山县建设局的网站郑州搜索引擎优化
  • 国外购物网站大全网站备案流程
  • 网站维护源码宁波网站建设的公司
  • 可以悬赏做任务的叫什么网站seo人才招聘
  • 一个主机可以放几个网站上海今天发生的重大新闻
  • 网站架构设计师薪资水平人员优化方案怎么写
  • 全国专业做美术网站的公司如何创建属于自己的网站
  • 中央气象台卫星云图seo算法优化
  • 知乎网站怎么做推广沈阳沈河seo网站排名优化
  • WordPress moe acg深圳网站关键词优化公司
  • 网站建设 云计算免费网站安全软件下载
  • 著名的淘宝客网站360收录提交入口
  • 济南网站自然优化驻马店百度seo
  • 怎么做电商运营的基本步骤seo和sem
  • 长沙网站建站南宁seo外包服务
  • asp网站上传到服务器上之后一打开就是download网络营销公司全网推广公司
  • 网站制作公透明清晰百度关键词优化软件网站
  • 网站建设费用是多少怎么样建一个网站
  • 网站下拉菜单代码云南网站推广公司
  • 做投注网站多少钱最近一周的新闻
  • 建设银行网站维护百度搜索风云榜总榜
  • 贵阳做网站优化域名注册网站系统
  • 深圳网站建设吗成都网站建设系统
  • 南昌网站建设利润公司怎么做网络营销
  • 校园内部网站平台建设方案产品seo基础优化