I am working on an application of vehicle detection, the purpose is to check if road is congested or not. The solution that came to my mind is to detect the vehicles moving in each direction separately and then apply limit on the number of vehicles in each direction. I have drawn horizontal lines that detect if the car is moving up or moving down. The problem I am facing is that I am unable to draw vertical lines. If I have height and width of a frame, how can we get parallel vertical lines from that information. One solution for horizontal that I got from somewhere is;

# 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))

I tried to change, variables for vertical lines, like h to w. But I am not getting the desired functionality. Any help in this regard would really be appreciated. I also want to know how ;

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

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

this upper code is helping to get expected horizontal lines.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.