diff --git a/generate_marker.py b/generate_marker.py new file mode 100644 index 0000000..4386160 --- /dev/null +++ b/generate_marker.py @@ -0,0 +1,11 @@ +import cv2 as cv +import numpy as np + +# Load the predefined dictionary +dictionary = cv.aruco.Dictionary_get(cv.aruco.DICT_6X6_250) + +# Generate the marker +markerImage = np.zeros((200, 200), dtype=np.uint8) +markerImage = cv.aruco.drawMarker(dictionary, 33, 200, markerImage, 1) + +cv.imwrite("./markers/marker33.png", markerImage) diff --git a/main.py b/main.py new file mode 100644 index 0000000..6bfa11e --- /dev/null +++ b/main.py @@ -0,0 +1,25 @@ +import cv2 as cv +import numpy as np +import pandas as pd + +if __name__ == '__main__': + cap = cv.VideoCapture('./test.mp4') + while True: + success, image = cap.read() + if image is None: + break + key = cv.waitKey(1) & 0xFF + if (key == 27) or (key == ord('q')): + break + if success: + dictionary = cv.aruco.Dictionary_get(cv.aruco.DICT_6X6_250) + parameters = cv.aruco.DetectorParameters_create() + markerCorners, markerIds, rejectedCandidates = cv.aruco.detectMarkers(image, + dictionary, + parameters=parameters) + if markerIds is not None: + coords = list(np.mean(markerCorners[0], axis=1)[0].astype('int')) + image = cv.circle(image, coords, 20, (255, 0, 0), -1) + cv.imshow("original", image) + else: + continue diff --git a/markers/marker31.png b/markers/marker31.png new file mode 100644 index 0000000..75ab98c Binary files /dev/null and b/markers/marker31.png differ diff --git a/markers/marker32.png b/markers/marker32.png new file mode 100644 index 0000000..2606964 Binary files /dev/null and b/markers/marker32.png differ diff --git a/markers/marker33.png b/markers/marker33.png new file mode 100644 index 0000000..0a7c1dd Binary files /dev/null and b/markers/marker33.png differ