diff --git a/Code/Ball_Detection/PyTorch_with_ESPCAM/imageTread_AT.py b/Code/Ball_Detection/PyTorch_with_ESPCAM/imageTread_AT.py new file mode 100644 index 0000000000000000000000000000000000000000..c18e194f3184ffa653cae7e35edf256a7310ea70 --- /dev/null +++ b/Code/Ball_Detection/PyTorch_with_ESPCAM/imageTread_AT.py @@ -0,0 +1,73 @@ +import cv2 +from urllib.request import urlopen, Request +import numpy as np +import time + +import apriltag + +def nothing(x): + pass + + +detector = apriltag.Detector() + + + +if __name__ == "__main__": + #change the IP address below according to the + #IP shown in the Serial monitor of Arduino code + # url='http://192.168.4.1/cam-hi.jpg' + # url='http://192.168.1.107/cam-hi.jpg' + url='http://192.168.4.1/cam-mid.jpg' + + + # cv2.namedWindow("live transmission", cv2.WINDOW_AUTOSIZE) + + cv2.namedWindow("live transmission", cv2.WINDOW_NORMAL) + + while True: + header = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36."} + req = Request(url, headers=header) + img_resp = urlopen(req, timeout=60) + imgnp=np.array(bytearray(img_resp.read()),dtype=np.uint8) + frame=cv2.imdecode(imgnp,-1) + + gray_image = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) + #print(len(gray_image.shape)) + h,w,_ = frame.shape + + results = detector.detect(gray_image ) + + # loop over the AprilTag detection results + for r in results: + # extract the bounding box (x, y)-coordinates for the AprilTag + # and convert each of the (x, y)-coordinate pairs to integers + (ptA, ptB, ptC, ptD) = r.corners + ptB = (int(ptB[0]), int(ptB[1])) + ptC = (int(ptC[0]), int(ptC[1])) + ptD = (int(ptD[0]), int(ptD[1])) + ptA = (int(ptA[0]), int(ptA[1])) + # draw the bounding box of the AprilTag detection + cv2.line(frame, ptA, ptB, (0, 255, 0), 5) + cv2.line(frame, ptB, ptC, (0, 255, 0), 5) + cv2.line(frame, ptC, ptD, (0, 255, 0), 5) + cv2.line(frame, ptD, ptA, (0, 255, 0), 5) + # draw the center (x, y)-coordinates of the AprilTag + (cX, cY) = (int(r.center[0]), int(r.center[1])) + cv2.circle(frame, (cX, cY), 5, (0, 0, 255), -1) + # draw the tag family on the image + tagFamily = r.tag_family.decode("utf-8") + cv2.putText(frame, tagFamily, (ptA[0], ptA[1] - 15), + cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 2) + print("[INFO] tag family: {}".format(tagFamily)) + + # show the output image after AprilTag detection + cv2.imshow("Image", frame) + + + key=cv2.waitKey(5) + if key==ord('q'): + break + + + #cv2.destroyAllWindows()