import detect import timeit import cv2 from imutils.video import FPS calibration_width = 0.75 image = "img7.jpg" images = ("img.jpg", "img2.jpg", "img3.jpg", "img4.jpg", "img5.jpg", "img6.jpg", "img7.jpg", "img8.jpg") video = False def go(): for file in images: detect.detect(calibration_width, file, True, False) if not video: elapsed_time = timeit.timeit(go, number=1)/1 print(elapsed_time) else : #tcp capture = cv2.VideoCapture('udpsrc port=5001 ! gdpdepay ! rtph264depay ! avdec_h264 ! videoconvert ! videorate ! video/x-raw,framerate=5/1 ! appsink', cv2.CAP_GSTREAMER) capture = cv2.VideoCapture('udpsrc port=9000 caps="application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264" ! rtph264depay ! avdec_h264 ! videoconvert ! appsink sync=false', cv2.CAP_GSTREAMER) # server command for imx135 camera ./video2stdout | gst-launch-1.0 -v fdsrc ! h264parse ! rtph264pay config-interval=1 pt=96 ! gdppay ! tcpserversink host=192.168.43.152 port=5001 # server command for udp: ./video2stdout | gst-launch-1.0 -v fdsrc ! h264parse ! rtph264pay config-interval=10 pt=96 ! udpsink host=192.168.43.40 port=9000 #ret,frame = capture.read() #detect.detect(calibration_width, "img7.jpg", True, False) #detect.detect(calibration_width, frame, True, True) x = 0 while True: ret = capture.grab() x+=1 if not ret: print('empty frame') break #print('frame') if x > 1: ret,frame = capture.retrieve() cv2.imshow('Item Sorter', detect.detect(calibration_width, frame, True, True)) x = 0 if cv2.waitKey(1)&0xFF == ord('q'): break