import detect import sort 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") #images = ("img.jpg", "img2.jpg") video = False def go(): for file in images: items,output = detect.detect(calibration_width, file, True, True) print(str(items)) if "Penny" in items: items.remove("Penny") itema = items[0] valid = True for item in items: if item != itema: print("Too many items!") valid = False break if valid: print("Found " + itema) bin = sort.sort(itema) 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() list,output = detect.detect(calibration_width, frame, True, True) cv2.imshow('Item Sorter', output) x = 0 if cv2.waitKey(1)&0xFF == ord('q'): break