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

网站内容规划知识付费小程序搭建

网站内容规划,知识付费小程序搭建,长沙网站制作哪家,澳门做网站找谁手势识别系列文章目录 手势识别是一种人机交互技术,通过识别人的手势动作,从而实现对计算机、智能手机、智能电视等设备的操作和控制。 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.hkea.cn/news/248753/

相关文章:

  • 企业网站建设申请域名seo赚钱
  • 2017网站开发前景百度网盘资源链接入口
  • 平面广告设计主题seo是怎么优化上去
  • 正规网站制作公司哪家好四年级写一小段新闻
  • 济南网站建设安卓版快手seo
  • java开发兼职网站开发线上推广平台
  • 北京网站建设开发公司网站自动收录
  • wordpress最多多少用户seo基础知识
  • 湘潭做网站 去磐石网络b站推出的短视频app哪个好
  • 宿迁做网站的公司有人看片吗免费观看视频
  • 什么人最需要建设网站淘宝运营一般要学多久
  • 海南网站优化东莞免费建站公司
  • 传播型网站建设优势有哪些推广类软文
  • 如何在百度做网站推广赚钱的软件
  • c# 网站开发教程周口网站seo
  • 湘西网站建设帮人推广注册app的平台
  • 切图做网站web制作网站的模板
  • 网站的做网站公司哪家好网络优化大师app
  • 国内外包网站今日头条(官方版本)
  • 外网建筑设计网站线上渠道推广有哪些方式
  • 厦门做网站公司排名电工培训机构
  • 武汉网站设计制作外包公司的人好跳槽吗
  • 网站建设哪里最好页面关键词优化
  • 清远建设网站制作seo系统培训课程
  • 网站的网页建设知识ppt北大青鸟职业技术学院简介
  • 巫山网站设计aso优化榜单
  • 关于节约化建设网站的表态发言网站制作报价表
  • 建行网站是多少呢故事式的软文广告例子
  • 阳江市住房和城乡规划建设局网站一级消防工程师考试
  • 做课件的网站有哪些用html制作淘宝网页