Generador de Marcadores ArUco
Crea, personaliza, previsualiza y descarga marcadores fiduciales ArUco y AprilTag en alta resolución PNG y SVG compatibles al 100% con OpenCV y Python.
Configuración
Capacidad máxima: 50 marcadores (IDs del 0 al 49).
600 px
100 px
Guías de inspección
Resumen de Especificaciones
Resolución total
800x800 px
Módulos
6x6
Tamaño celda
100.0 px
Identificador
ID #23
DICT_4X4_50ID: 23800x800 px
Código Python idéntico a tu selección actual usando OpenCV:
generar_marcador.py
Python 3import cv2
TIPO_DICCIONARIO = cv2.aruco.DICT_4X4_50
ID_MARCADOR = 23
TAMANO_MARCADOR = 600
MARGEN_BLANCO = 100
diccionario = cv2.aruco.getPredefinedDictionary(TIPO_DICCIONARIO)
marcador = cv2.aruco.generateImageMarker(
diccionario,
ID_MARCADOR,
TAMANO_MARCADOR
)
marcador_con_margen = cv2.copyMakeBorder(
marcador,
MARGEN_BLANCO,
MARGEN_BLANCO,
MARGEN_BLANCO,
MARGEN_BLANCO,
cv2.BORDER_CONSTANT,
value=255
)
NOMBRE_ARCHIVO = "aruco_dict_4x4_50_id23.png"
cv2.imwrite(
NOMBRE_ARCHIVO,
marcador_con_margen
)
print("Marcador generado correctamente.")
print("Diccionario:", "DICT_4X4_50")
print(f"ID: {ID_MARCADOR}")
print(f"Archivo: {NOMBRE_ARCHIVO}")Script para detectar marcadores en tiempo real mediante cámara web:
detectar_aruco.py
OpenCV 4.7+import cv2
detector_params = cv2.aruco.DetectorParameters()
diccionario = cv2.aruco.getPredefinedDictionary(cv2.aruco.DICT_4X4_50)
detector = cv2.aruco.ArucoDetector(diccionario, detector_params)
cap = cv2.VideoCapture(0)
while True:
ret, frame = cap.read()
if not ret:
break
esquinas, ids, rechazados = detector.detectMarkers(frame)
if ids is not None:
cv2.aruco.drawDetectedMarkers(frame, esquinas, ids)
for i in range(len(ids)):
print(f"Detectado marcador ID: {ids[i][0]}")
cv2.imshow("Deteccion de Marcadores ArUco - GF Academy", frame)
if cv2.waitKey(1) & 0xFF == 27:
break
cap.release()
cv2.destroyAllWindows()¿Qué es un marcador ArUco?
Un marcador ArUco es un patrón sintético cuadrado compuesto por una cuadrícula interna de bits binarios (blancos y negros) y un borde exterior negro continuo. Permite a sistemas de visión por computador estimar la pose 3D (posición y orientación de cámara) de forma rápida y robusta.
¿Qué tamaño elegir?
- • 4x4: Mayor alcance y menor oclusión.
- • 5x5 / 6x6: Gran balance de IDs y robustez.
- • 7x7: Cientos de IDs para entornos complejos.
Consejos de Impresión
- • Imprime en papel mate sin brillo para evitar reflejos.
- • Mantén un margen blanco de al menos 1 módulo.
- • Pega el marcador en superficies planas y rígidas.