You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
item-sort/run_detect.py

56 lines
2.2 KiB
Python

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