import cv2
import os

# === SETTINGS ===
OUTPUT_DIR = "aruco_png"
DICT_TYPE = cv2.aruco.DICT_4X4_50   # or 5x5/6x6 for more IDs
MARKER_SIZE = 200                  # pixel size of the marker image

# === SETUP ===
os.makedirs(OUTPUT_DIR, exist_ok=True)
aruco_dict = cv2.aruco.getPredefinedDictionary(DICT_TYPE)

def aruco_to_png(marker_id: int, filename: str):
    img = cv2.aruco.generateImageMarker(aruco_dict, marker_id, MARKER_SIZE)
    cv2.imwrite(filename, img)
    print(f"✅ Saved {filename}")

# === GENERATE MULTIPLE MARKERS ===
for marker_id in range(8):  # generate 8 markers (IDs 0–7)
    path = os.path.join(OUTPUT_DIR, f"aruco_{marker_id}.png")
    aruco_to_png(marker_id, path)

print(f"\nAll PNG markers saved in '{OUTPUT_DIR}/'")