Tag de første trin i programmering med udvidet virkelighed ved at lære, hvordan du genererer pladsholdere til indhold.
Når det kommer til augmented reality, er placeringen af virtuelle objekter og overlejringer afgørende. Det er her, ArUco-markører kommer ind. ArUco-markører er simple binære mønstre, som du kan placere i virkelige ord-scener for at overlejre digitalt indhold.
Du kan printe dem på papir, vise dem på en skærm eller projicere dem på objekter i den virkelige verden. Denne fleksibilitet gør dem til et populært valg i computervisionsapplikationer.
ArUco-modulet og OpenCV-biblioteket
For at generere ArUco-markører skal du bruge ArUco-modulet, som er en del af OpenCV-biblioteket. OpenCV er et bibliotek, der indeholder en masse værktøjer og funktioner til udvikling computer vision applikationer.
Modulet giver dig mulighed for at generere, detektere og genkende ArUco-markører. Det giver dig også mulighed for at foretage estimering af stilling. Dette gør det igen muligt at tilpasse virtuelle objekter til den virkelige verden og skabe en fordybende og problemfri brugeroplevelse.
Opsætning af dit miljø
Opret et nyt virtuelt Python-miljø. Dette vil sikre, at der ikke er nogen pakkeversionskonflikt, når du installerer dit projekts nødvendige biblioteker. Fortsæt derefter til terminalen og kør følgende kommando for at installere OpenCV.
pip installer opencv-contrib-python
Ovenstående kommando installerer OpenCV-bidragsbiblioteket. Dette indeholder ArUco-modulet, som du vil bruge til at oprette markørgeneratoren. Sørg for at installere denne version, ikke OpenCV-python, fordi sidstnævnte ikke indeholder den funktionalitet, du har brug for.
Den fulde kildekode er tilgængelig i en GitHub-depot.
Oprettelse af ArUco Maker Generator Program
Oprettelse af ArUco-markørprogrammet er ret simpelt. Dette skyldes, at AruCo-modulet klarer det meste af de tunge løft for dig. Start med at importere OpenCV, så du kan bruge dets funktioner og værktøjer i din kode.
importere cv2
Definer en funktion, der vil generere en enkelt markør med et specifikt ID. Dette vil tage højde for, når markørerne ikke er nødvendige i bulk.
defgenerere_single_marker(aruco_dict):
markør_størrelse = int (input("Indtast markørstørrelsen: "))
markør_id = int (input("Indtast markør-id:"))marker_img = cv2.aruco.generateImageMarker (aruco_dict, markør_id,
markørstørrelse)cv2.imwrite("markør_{}.png".format (markør_id), markør_img)
markør_img = cv2.imread("markør_{}.png".format (markør_id))
cv2.imshow("Markør", markør_img)
Print("Dimensioner:", marker_img.shape)
cv2.waitKey(0)
Definer derefter en funktion, der vil generere et vist antal markører i bulk. Antallet af markører, du kan generere, vil variere afhængigt af OpenCV ordbog du bruger. Dette skyldes, at nogle ordbøger understøtter generering af flere markører end andre.
defgenerere_bulk_markører(aruco_dict):
markør_størrelse = int (input("Indtast markørstørrelsen: "))
antal_markører = int (input("Indtast antallet af markører, der skal genereres: "))
markør_imgs = []til markør_id i område (antal_markører):
marker_img = cv2.aruco.generateImageMarker (aruco_dict, markør_id,
markørstørrelse)cv2.imwrite("markør_{}.png".format (markør_id), markør_img)
marker_imgs.append (cv2.imread("markør_{}.png".format (markør_id)))
til markør_img i markør_billeder:
cv2.imshow("Markør", markør_img)
Print("Dimensioner:", marker_img.shape)
cv2.waitKey(0)
Til sidst skal du definere en hovedfunktion, der vil styre programmets flow, og bede brugeren om den ønskede handling. Sørg for, at det kører først, når programmet kører.
defvigtigste():
aruco_dict = cv2.aruco.getPredefinedDictionary (cv2.aruco. DICT_4X4_50)bruger_input = input("Tryk på '1' for at generere en enkelt markør eller "
"'2' for at generere markører i bulk: ")hvis bruger_input == "1":
generere_single_marker (aruco_dict)
elif bruger_input == "2":
generere_bulk_markører (aruco_dict)
andet:
Print("Ugyldigt input. Prøv igen.")
hvis __navn__ == "__main__":
hoved()
Kør nu programmet for at generere en enkelt markør eller i bulk. Udgangen af programmet vil se nogenlunde således ud:
Outputtet viser en genereret ArUco-markør. Programmet gemmer hver markør med et nummer i slutningen af sit navn, som repræsenterer markør-id'et.
Hvad nu efter generering af ArUco-markører?
Efter at have genereret ArUco-markører, kan du oprette din egen enkle computervision-applikation. Dette vil hjælpe dig med at lære, hvordan du bruger markørerne til at overlejre digital information på den virkelige verden. Det vil også hjælpe dig med at værdsætte, hvordan markørerne bidrager til hele den sømløse og fordybende brugeroplevelse.