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

如何申请二级域名西安seo代理

如何申请二级域名,西安seo代理,网站推广免费渠道,企业网站网页设计费用手势识别系列文章目录 手势识别是一种人机交互技术,通过识别人的手势动作,从而实现对计算机、智能手机、智能电视等设备的操作和控制。 1. opencv实现手部追踪(定位手部关键点) 2.opencv实战项目 实现手势跟踪并返回位置信息&a…

手势识别系列文章目录
手势识别是一种人机交互技术,通过识别人的手势动作,从而实现对计算机、智能手机、智能电视等设备的操作和控制。

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

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

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

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

5.opencv实战项目 手势识别-手部距离测量

6.opencv实战项目 手势识别-实现尺寸缩放效果

未完待续
 

目录

1.简介

2.代码思路

 3.代码详解


 

opencv 的图像结果

 

代码需要用到opencv  cvzone模块   pickle模块

1.简介

OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉库,它提供了丰富的图像处理和计算机视觉功能,旨在帮助开发者在各种应用领域中实现图像处理、分析和计算机视觉任务

  1. 功能丰富:OpenCV提供了广泛的图像处理、计算机视觉、机器学习和深度学习功能。这些功能包括图像增强、特征提取、对象检测、人脸识别、图像分割、运动跟踪等。

  2. 跨平台:OpenCV是跨平台的,可以在多种操作系统上运行,包括Windows、Linux、macOS等。

  3. 多语言支持:OpenCV支持多种编程语言,如C++、Python、Java等。这使得开发者可以使用自己熟悉的编程语言来使用OpenCV库。

  4. 高效优化:OpenCV库被优化用于高性能计算。它使用了硬件加速、并行处理和优化算法,以在各种硬件平台上提供高效的计算速度。

  5. 图像和视频处理:OpenCV支持从图像文件和摄像头中读取图像和视频数据。它可以进行图像预处理、过滤、几何变换、颜色空间转换等。

  6. 计算机视觉任务:OpenCV包括各种计算机视觉任务的算法和功能,如物体检测、人脸识别、手势识别、运动跟踪、目标追踪等。

  7. 深度学习集成:OpenCV也集成了一些深度学习框架,如TensorFlow和PyTorch,使得开发者可以结合深度学习模型来执行更复杂的视觉任务。

  8. 开源社区:OpenCV是一个活跃的开源项目,有着庞大的开发者社区。这意味着你可以找到大量的教程、示例代码和解决方案,帮助你解决各种视觉问题。

     

2.代码思路

  1. 视频输入与读取

    • 通过cv2.VideoCapture打开一个视频文件作为输入。
    • 使用cap.read()读取视频的每一帧图像。
  2. 图像预处理

    • 将每一帧图像转换为灰度图像,以简化后续处理。
    • 对灰度图像应用高斯模糊,减少图像中的噪声。
    • 使用自适应阈值方法将图像分割为前景(车辆)和背景(停车位)。
  3. 停车位检测checkParkingSpace函数):

    • 针对预定义的停车位位置(从文件加载得到),在阈值图像中提取每个停车位的区域。
    • 使用cv2.countNonZero计算每个停车位区域内非零(白色)像素的数量。这相当于计算了停车位区域内的白色像素数量,用于判断是否有车辆停放在该位置。
    • 根据计算出的非零像素数量,判断停车位是否空闲。如果非零像素数量低于某个阈值(例如900),则认为停车位为空闲;否则认为停车位被占用。
    • 在原始图像上,使用矩形框和文本标记出停车位的状态,以及区域内非零像素的数量。
  4. 结果显示

    • 在图像上绘制检测结果,使用不同的颜色标记空闲和占用的停车位,以及停车位区域内的像素数量信息。
    • 在图像上绘制空闲停车位的总数量,以及总停车位数量。
  5. 循环处理

    • 循环处理视频的每一帧,重复上述步骤。
    • 如果视频处理完毕,重置视频的位置,以便重新播放视频。

 

 3.代码详解

import cv2
import pickle
import cvzone
import numpy as np# Video feed
cap = cv2.VideoCapture('carPark.mp4')with open('CarParkPos', 'rb') as f:posList = pickle.load(f)width, height = 107, 48def checkParkingSpace(imgPro):spaceCounter = 0for pos in posList:x, y = posimgCrop = imgPro[y:y + height, x:x + width]# cv2.imshow(str(x * y), imgCrop)count = cv2.countNonZero(imgCrop)if count < 900:color = (0, 255, 0)thickness = 5spaceCounter += 1else:color = (0, 0, 255)thickness = 2cv2.rectangle(img, pos, (pos[0] + width, pos[1] + height), color, thickness)cvzone.putTextRect(img, str(count), (x, y + height - 3), scale=1,thickness=2, offset=0, colorR=color)cvzone.putTextRect(img, f'Free: {spaceCounter}/{len(posList)}', (100, 50), scale=3,thickness=5, offset=20, colorR=(0,200,0))
while True:if cap.get(cv2.CAP_PROP_POS_FRAMES) == cap.get(cv2.CAP_PROP_FRAME_COUNT):cap.set(cv2.CAP_PROP_POS_FRAMES, 0)success, img = cap.read()imgGray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)imgBlur = cv2.GaussianBlur(imgGray, (3, 3), 1)imgThreshold = cv2.adaptiveThreshold(imgBlur, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C,cv2.THRESH_BINARY_INV, 25, 16)imgMedian = cv2.medianBlur(imgThreshold, 5)kernel = np.ones((3, 3), np.uint8)imgDilate = cv2.dilate(imgMedian, kernel, iterations=1)checkParkingSpace(imgDilate)cv2.imshow("Image", img)# cv2.imshow("ImageBlur", imgBlur)# cv2.imshow("ImageThres", imgMedian)cv2.waitKey(10)

代码讲解

  1. 导入所需的库:

    • cv2:OpenCV库,用于图像处理和计算机视觉任务。
    • pickle:用于序列化和反序列化Python对象。
    • cvzone:这是一个基于OpenCV的库,用于在图像上绘制文本和形状。
    • numpy:用于数组操作和数学计算。
  2. 打开视频文件并读取停车位位置信息:

    • cap = cv2.VideoCapture('carPark.mp4'):打开名为'carPark.mp4'的视频文件作为输入。
    • with open('CarParkPos', 'rb') as f::使用二进制模式打开名为'CarParkPos'的文件,其中包含停车位的位置信息。
    • posList = pickle.load(f):从文件中加载停车位位置信息,并将其存储在posList变量中。
  3. 定义一个用于检查停车位空闲情况的函数checkParkingSpace(imgPro)

    • spaceCounter用于计算空闲停车位的数量。
    • 循环遍历每个停车位的位置信息。
    • 从输入图像中提取与当前停车位位置对应的区域,即imgCrop
    • 使用cv2.countNonZero(imgCrop)计算该区域中非零像素的数量(即白色像素数量)。
    • 如果非零像素数量小于900,表示该停车位空闲,将矩形框和文本标记为绿色,计数器增加。
    • 否则,表示停车位已被占用,将矩形框和文本标记为红色。
  4. 进入主循环:

    • 循环用于处理视频帧。
    • 首先检查是否已经到达视频的末尾,如果是,则将视频的位置重置到开头。
    • 使用cap.read()读取视频的下一帧图像。
    • 将图像转换为灰度图像,然后应用高斯模糊、自适应阈值等图像处理步骤,以提取停车位的信息。
    • 调用之前定义的checkParkingSpace()函数,传入经过处理的图像。
    • 在图像上绘制检测结果的矩形框和文本信息。
    • 使用cv2.imshow()显示处理后的图像,并等待用户按键(cv2.waitKey(10))。

视频文件

链接:https://pan.baidu.com/s/1TiNlSBF6I1lHvEr2YIxlBA 
提取码:8vw3

有遇到的问题欢迎评论区留言

http://www.hrbkazy.com/news/1921.html

相关文章:

  • 公司网站建设介绍短链接生成器
  • 深圳做网站那里好深圳外贸seo
  • 专门做封面的网站网站外链的优化方法
  • 天津建设网站需要的费用seo研究中心怎么了
  • 河南建设网站制作小学生收集的新闻10条
  • 做公司的网站有哪些原版百度
  • 最好的flash网站百度云网盘资源链接
  • 好的app设计网站b站推广网站
  • 企业网站html模板下载成都网站建设公司
  • 潍坊一品网站制作百度一下官方入口
  • 上海公司注册多久可以拍牌北京百度推广优化排名
  • 下载别人dede网站模版做好网络推广的技巧
  • 这么做国外网站的国内镜像站如何推广店铺呢
  • 江西网站设计哪家强网站推广软件免费
  • 网站的日常维护重庆网页优化seo公司
  • 网站建设需要些什么设备运营和营销的区别和联系
  • 网站开发地图seo网站诊断
  • 表白网站制作教程百度站长平台网站提交
  • wap网站建设服务电商怎么做?如何从零开始学做电商赚钱
  • 网页开发与设计的内容简阳seo排名优化培训
  • 东莞专业做网站优化搜索引擎优化排名技巧
  • 网站建设开发技术天津广州seo黑帽培训
  • 系统app定制开发优化系统
  • seo短视频网页入口引流网站有哪些那种网站怎么搜关键词
  • dw自己做网站需要什么区别百度搜索引擎算法
  • 一个新的网站怎么做宣传数据分析师培训需要多少钱
  • 全国最新疫情消息今天优化推广网站seo
  • 网页设计软件排名长沙官网优化公司
  • 有多少专门做兼职的网站品牌推广活动方案
  • 怎样用eclipse做网站江苏搜索引擎优化