该项目基于图像处理来检测停车场中的空间。
该项目将使用 openCV 和 CVzone 库来执行图像处理任务。
如何运行
用鼠标单击功能在停车场的静止图像上绘制框
在这些单独的框上裁剪和执行 opencv 转换
结合这两个步骤并将它们应用于视频以检查可用的可用空间
过程
1. 安装和导入依赖项
openCV 将允许我们导入图像和视频,然后我们可以对它们应用转换,CVzone作为基于 openCV 的库,它还允许我们使用与 openCV 相比所需语法更少的转换,“Pickel”用于存储在图片上绘制的方框的位置,“numpy”用于应用简单的转换。
import cv2
import pickle
import cvzone
import numpy as np
我们将处理使用 parkingspacepicker.py 绘制框并存储位置,并通过 pickel 在我们的 main.py 中使用这些位置
2. 绘制方框
在此图像中,我们可以看到空间分布不均,并且间隔各不相同。
我们稍后将使用的视频的相机处于静态状态,因此我们可以通过在框上手动绘制框来接近它。
为此,我们需要知道单个框的高度和宽度,然后我们将不得不尝试不同的值以获得完美形状的框
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: