Ta de første trinnene i utvidet virkelighet-programmering ved å lære hvordan du genererer plassholdere for innhold.

Når det gjelder utvidet virkelighet, er plasseringen av virtuelle objekter og overlegg avgjørende. Det er her ArUco-markører kommer inn. ArUco-markører er enkle binære mønstre som du kan plassere i virkelige ordscener for å overlegge digitalt innhold.

Du kan skrive dem ut på papir, vise dem på en skjerm eller projisere dem på virkelige objekter. Denne fleksibiliteten gjør dem til et populært valg i datasynsapplikasjoner.

ArUco-modulen og OpenCV-biblioteket

For å generere ArUco-markører trenger du ArUco-modulen som er en del av OpenCV-biblioteket. OpenCV er et bibliotek som inneholder mange verktøy og funksjoner for utvikling datasynsapplikasjoner.

Modulen lar deg generere, oppdage og gjenkjenne ArUco-markører. Den lar deg også utføre poseringsestimering. Dette gjør det igjen mulig å justere virtuelle objekter til den virkelige verden og skape en oppslukende og sømløs brukeropplevelse.

instagram viewer

Sette opp miljøet ditt

Lag et nytt virtuelt Python-miljø. Dette vil sikre at det ikke er noen pakkeversjonskonflikt når du installerer prosjektets nødvendige biblioteker. Fortsett deretter til terminalen og kjør følgende kommando for å installere OpenCV.

pip installer opencv-contrib-python

Kommandoen ovenfor installerer OpenCV-bidragsbiblioteket. Denne inneholder ArUco-modulen som du skal bruke til å lage markørgeneratoren. Pass på at du installerer denne versjonen, ikke OpenCV-python, fordi sistnevnte ikke inkluderer funksjonaliteten du trenger.

Den fullstendige kildekoden er tilgjengelig i en GitHub-depot.

Opprette ArUco Maker Generator Program

Å lage ArUco-markørprogrammet er ganske enkelt. Dette er fordi AruCo-modulen gjør det meste av tunge løft for deg. Start med å importere OpenCV slik at du kan bruke funksjonene og verktøyene i koden din.

import cv2

Definer en funksjon som vil generere en enkelt markør med en spesifikk ID. Dette vil imøtekomme når markørene ikke er nødvendig i bulk.

defgenerere_single_marker(aruco_dict):
markør_størrelse = int (input("Skriv inn markørstørrelsen:"))
markør_id = int (input("Skriv inn markør-ID:"))

marker_img = cv2.aruco.generateImageMarker (aruco_dict, marker_id,
markørstørrelse)

cv2.imwrite("marker_{}.png".format (marker_id), markør_img)

marker_img = cv2.imread("marker_{}.png".format (markør_id))

cv2.imshow("Markør", marker_img)

skrive ut("Dimensjoner:", marker_img.shape)

cv2.waitKey(0)

Definer deretter en funksjon som vil generere et visst antall markører i bulk. Antallet markører du kan generere vil variere i henhold til OpenCV-ordbok du bruker. Dette er fordi noen ordbøker støtter generering av flere markører enn andre.

defgenerere_bulk_markører(aruco_dict):
markør_størrelse = int (input("Skriv inn markørstørrelsen:"))
num_markers = int (input("Skriv inn antall markører som skal genereres: "))
marker_imgs = []

til markør_id i område (antall_markers):
marker_img = cv2.aruco.generateImageMarker (aruco_dict, marker_id,
markørstørrelse)

cv2.imwrite("marker_{}.png".format (marker_id), markør_img)
marker_imgs.append (cv2.imread("marker_{}.png".format (marker_id)))

til marker_img i marker_imgs:
cv2.imshow("Markør", marker_img)
skrive ut("Dimensjoner:", marker_img.shape)
cv2.waitKey(0)

Definer til slutt en hovedfunksjon som vil kontrollere flyten av programmet og be brukeren om ønsket operasjon. Sørg for at den kjører først når programmet kjøres.

defhoved-():
aruco_dict = cv2.aruco.getPredefinedDictionary (cv2.aruco. DICT_4X4_50)

user_input = input("Trykk '1' for å generere en enkelt markør eller "
"'2' for å generere markører i bulk: ")

hvis user_input == "1":
generere_single_marker (aruco_dict)
elif user_input == "2":
generer_bulkmarkører (aruco_dict)
ellers:
skrive ut("Ugyldig inndata. Vær så snill, prøv på nytt.")

hvis __navn__ == "__hoved__":
hoved()

Kjør nå programmet for å generere en enkelt markør eller i bulk. Utgangen av programmet vil se omtrent slik ut:

Utgangen viser en generert ArUco-markør. Programmet lagrer hver markør med et nummer på slutten av navnet, som representerer markør-ID.

Hva skjer etter å ha generert ArUco-markører?

Etter å ha generert ArUco-markører, kan du lage din egen enkle datasynsapplikasjon. Dette vil hjelpe deg med å lære hvordan du bruker markørene til å overlegge digital informasjon til virkelige bilder. Det vil også hjelpe deg å sette pris på hvordan markørene bidrar til hele den sømløse og oppslukende brukeropplevelsen.