ss="lines-num lines-num-new"> 439
+
+ # print elapsed time to console
+ elapsed_time = time.time()-start_time
+ print("-- %s seconds --" % round(elapsed_time,2))
+
+ # output video
+ frame = cv2.cvtColor(frame, cv2.COLOR_HSV2BGR)
+
+ # draw dividing line
+ # flash green when new car counted
+ if current_count > total_cars:
+ cv2.line(frame, (0, int(2*frame_h/3)),(frame_w, int(2*frame_h/3)),
+ (0,255,0), 2*LINE_THICKNESS)
+ else:
+ cv2.line(frame, (0, int(2*frame_h/3)),(frame_w, int(2*frame_h/3)),
+ (0,0,255), LINE_THICKNESS)
+
+ # update with latest count
+ total_cars = current_count
+
+ # draw upper limit
+ cv2.line(frame, (0, 100),(frame_w, 100), (0,0,0), LINE_THICKNESS)
+
+ ret, buffer = cv2.imencode('.jpg', frame)
+ frame2 = buffer.tobytes()
+ yield (b'--frame\r\n'
+ b'Content-Type: image/jpeg\r\n\r\n' + frame2 + b'\r\n') # concat frame one by one and show result
+
+ #cv2.imshow("preview", frame)
+ #cv2.imwrite("../flask-hls-demo/static/frame.jpg", frame)
+ out.write(frame)
+
+ if cv2.waitKey(27) and 0xFF == ord('q'):
+ break
+ else:
+ break
+
+ #cv2.line()
+ #cv2.destroyAllWindows()
+ #cap.release()
+ #out.release()
+
+from flask import Flask, render_template, Response
+import cv2
+
+app = Flask(__name__)
+
+
+def find_camera(id):
+ '''
+ cameras = ['rtsp://username:password@ip_address:554/user=username_password='password'_channel=channel_number_stream=0.sdp',
+ 'rtsp://username:password@ip_address:554/user=username_password='password'_channel=channel_number_stream=0.sdp']
+ '''
+ cameras = ['rtsp://admin:@Unv123456@192.168.10.252:554/unicast/c1/s1/live']
+ return cameras[int(id)]
+# for cctv camera use rtsp://username:password@ip_address:554/user=username_password='password'_channel=channel_number_stream=0.sdp' instead of camera
+# for webcam use zero(0)
+
+
+def gen_frames(camera_id):
+
+ cam = find_camera(camera_id)
+ cap= cv2.VideoCapture(cam)
+
+ while True:
+ # for cap in caps:
+ # # Capture frame-by-frame
+ success, frame = cap.read() # read the camera frame
+ if not success:
+ break
+ else:
+ ret, buffer = cv2.imencode('.jpg', frame)
+ frame = buffer.tobytes()
+ yield (b'--frame\r\n'
+ b'Content-Type: image/jpeg\r\n\r\n' + frame + b'\r\n') # concat frame one by one and show result
+@app.route('/video_feed/<string:id>/', methods=["GET"])
+def video_feed(id):
+
+ """Video streaming route. Put this in the src attribute of an img tag."""
+ '''
+ return Response(gen_frames(id),
+ mimetype='multipart/x-mixed-replace; boundary=frame')
+ '''
+ return Response(process_video(),
+ mimetype='multipart/x-mixed-replace; boundary=frame')
+
+@app.route('/', methods=["GET"])
+def index():
+ return render_template('index.html')
+
+
+if __name__ == '__main__':
+ app.run(debug=True, port=9099)