首页 > 解决方案 > 在车辆检测中的视频帧上绘制垂直线

问题描述

我正在研究车辆检测的应用,目的是检查道路是否拥堵。我想到的解决方案是分别检测每个方向移动的车辆,然后限制每个方向的车辆数量。我绘制了水平线来检测汽车是向上移动还是向下移动。我面临的问题是我无法绘制垂直线。如果我有框架的高度和宽度,我们如何从该信息中获得平行的垂直线。我从某个地方得到的一种水平解决方案是;

# Upper/Lower Lines
line_up = int(2*(h/6))
line_down = int(3*(h/5))

up_limit = int(1*(h/6))
down_limit = int(4*(h/5))

print("Blue line y:", str(line_down))
print("Red line y:", str(line_up))
line_down_color = (255,0,0)
line_up_color = (0,0,255)
pt1 = [0, line_down]
pt2 = [w, line_down]
pts_L1 = np.array([pt1,pt2], np.int32)
pts_L1 = pts_L1.reshape((-1,1,2))
pt3 = [0, line_up]
pt4 = [w, line_up]
pts_L2 = np.array([pt3,pt4], np.int32)
pts_L2 = pts_L2.reshape((-1,1,2))

pt5 = [0, up_limit]
pt6 = [w, up_limit]
pts_L3 = np.array([pt5,pt6], np.int32)
pts_L3 = pts_L3.reshape((-1,1,2))
pt7 = [0, down_limit]
pt8 = [w, down_limit]
pts_L4 = np.array([pt7,pt8], np.int32)
pts_L4 = pts_L4.reshape((-1,1,2))

我试图改变垂直线的变量,比如 h 到 w。但我没有得到想要的功能。在这方面的任何帮助将不胜感激。我也想知道怎么做;

line_up = int(2*(h/6))
line_down = int(3*(h/5))

up_limit = int(1*(h/6))
down_limit = int(4*(h/5))

上面的代码有助于获得预期的水平线。

标签: pythonopencvcomputer-visionartificial-intelligenceyolo

解决方案


推荐阅读