车位数量检测

该项目利用OpenCV和CVzone库检测停车场空间。通过手动在静止图像上绘制框,应用图像处理技术,裁剪并分析视频帧,判断车位占用情况。通过像素计数和边缘检测算法确定区域是否包含汽车。最终实现车位数量的自动检测。
摘要由CSDN通过智能技术生成

2d38cd1a1a3e1d49229e4640685d35a8.png

该项目基于图像处理来检测停车场中的空间。

该项目将使用 openCV 和 CVzone 库来执行图像处理任务。

如何运行

  1. 用鼠标单击功能在停车场的静止图像上绘制框

  2. 在这些单独的框上裁剪和执行 opencv 转换

  3. 结合这两个步骤并将它们应用于视频以检查可用的可用空间

过程

1. 安装和导入依赖项

openCV 将允许我们导入图像和视频,然后我们可以对它们应用转换,CVzone作为基于 openCV  的库,它还允许我们使用与 openCV  相比所需语法更少的转换,“Pickel”用于存储在图片上绘制的方框的位置,“numpy”用于应用简单的转换。

import cv2
import pickle
import cvzone
import numpy as np
  • 我们将处理使用 parkingspacepicker.py 绘制框并存储位置,并通过 pickel 在我们的 main.py 中使用这些位置

2.  绘制方框

affe2a52b0a9e262f2b6b19da829654c.png

在此图像中,我们可以看到空间分布不均,并且间隔各不相同。

我们稍后将使用的视频的相机处于静态状态,因此我们可以通过在框上手动绘制框来接近它。

为此,我们需要知道单个框的高度和宽度,然后我们将不得不尝试不同的值以获得完美形状的框

import cv2
import pickle
import cvzone
import numpy as np

img = cv2.imread('carParkImg.png')

while True:
    cv2.rectangle(img,(50,1920),(157,240),(255,0,255),2)
    cv2.imshow("image", img)
    cv2.waitKey(1)

在此之后,我们得到 width 和 height = 107, 48 你也可以尝试不同的值。

我们启动一个列表来存储这些值并编写一个函数来检测鼠标点击操作,你可以在下一个片段中看到

img = cv2.imread('carParkImg.png')
width, height = 107, 48

def mouse_click(events, x, y, flags, params):
    if events == cv2.EVENT_LBUTTONDOWN:
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值