Poduzmite prve korake u programiranju proširene stvarnosti tako što ćete naučiti kako generirati rezervirana mjesta za sadržaj.

Kada je riječ o proširenoj stvarnosti, pozicioniranje virtualnih objekata i preklapanja je ključno. Tu na scenu dolaze ArUco markeri. ArUco markeri jednostavni su binarni obrasci koje možete pozicionirati u scenama stvarnih riječi kako biste prekrili digitalni sadržaj.

Možete ih ispisati na papir, prikazati na ekranu ili projicirati na objekte iz stvarnog svijeta. Ova fleksibilnost ih čini popularnim izborom u aplikacijama računalnog vida.

Modul ArUco i biblioteka OpenCV

Za generiranje ArUco markera potreban vam je ArUco modul koji je dio OpenCV biblioteke. OpenCV je biblioteka koja sadrži mnogo alata i funkcija za razvoj aplikacije računalnog vida.

Modul vam omogućuje generiranje, otkrivanje i prepoznavanje ArUco markera. Također vam omogućuje da izvršite procjenu položaja. To pak omogućuje usklađivanje virtualnih objekata sa stvarnim svijetom stvarajući impresivno i besprijekorno korisničko iskustvo.

Postavljanje vašeg okruženja

Stvorite novo Python virtualno okruženje. Ovo će osigurati da nema sukoba verzija paketa kada instalirate knjižnice potrebne za svoj projekt. Zatim prijeđite na terminal i pokrenite sljedeću naredbu za instalaciju OpenCV-a.

pip instalirajte opencv-contrib-python

Gornja naredba instalira biblioteku doprinosa OpenCV. Ovo sadrži modul ArUco koji ćete koristiti za stvaranje generatora markera. Pazite da instalirate ovu verziju, a ne OpenCV-python, jer potonji ne uključuje funkcionalnost koja vam je potrebna.

Puni izvorni kod dostupan je u a GitHub spremište.

Izrada programa ArUco Maker Generator

Stvaranje programa markera ArUco vrlo je jednostavno. To je zato što AruCo modul obavlja većinu teškog posla umjesto vas. Započnite s uvozom OpenCV-a kako biste mogli koristiti njegove funkcije i alate u svom kodu.

uvoz cv2

Definirajte funkciju koja će generirati jedan marker s određenim ID-om. To će poslužiti kada markeri nisu potrebni u velikoj količini.

defgenerirati_pojedinačni_marker(aruco_dict):
veličina_markera = int (unos("Unesite veličinu markera: "))
marker_id = int (unos("Unesite ID markera: "))

marker_img = cv2.aruco.generateImageMarker (aruco_dict, marker_id,
veličina_markera)

cv2.imwrite("marker_{}.png".format (marker_id), marker_img)

marker_img = cv2.imread("marker_{}.png".format (marker_id))

cv2.imshow("Marker", marker_img)

ispis("Dimenzije:", marker_img.shape)

cv2.waitKey(0)

Zatim definirajte funkciju koja će skupno generirati određeni broj markera. Broj markera koje možete generirati varirat će ovisno o OpenCV rječnik ti koristiš. To je zato što neki rječnici podržavaju generiranje više oznaka od drugih.

defgeneriraj skupne_markere(aruco_dict):
veličina_markera = int (unos("Unesite veličinu markera: "))
num_markers = int (unos("Unesite broj markera za generiranje: "))
marker_imgs = []

za marker_id u raspon (broj_oznaka):
marker_img = cv2.aruco.generateImageMarker (aruco_dict, marker_id,
veličina_markera)

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

za marker_img u marker_imgs:
cv2.imshow("Marker", marker_img)
ispis("Dimenzije:", marker_img.shape)
cv2.waitKey(0)

Na kraju, definirajte glavnu funkciju koja će kontrolirati tijek programa i pitati korisnika za željenu operaciju. Pobrinite se da se prvo pokrene kada se program izvrši.

defglavni():
aruco_dict = cv2.aruco.getPredefinedDictionary (cv2.aruco. DICT_4X4_50)

korisnički_unos = unos("Pritisnite '1' za generiranje jednog markera ili "
"'2' za skupno generiranje oznaka: ")

ako korisnički_unos == "1":
generiraj_pojedinačni_marker (aruco_dict)
elif korisnički_unos == "2":
generiraj skupne_markere (aruco_dict)
drugo:
ispis("Pogrešan unos. Molim te pokušaj ponovno.")

ako __ime__ == "__glavni__":
glavni()

Sada pokrenite program za generiranje jednog markera ili skupno. Izlaz programa izgledat će otprilike ovako:

Izlaz prikazuje generirani ArUco marker. Program sprema svaki marker s brojem na kraju naziva koji predstavlja ID markera.

Što dalje nakon generiranja ArUco markera?

Nakon generiranja ArUco markera, možete izraditi vlastitu jednostavnu aplikaciju za računalni vid. To će vam pomoći da naučite kako koristiti markere za preklapanje digitalnih informacija na vizualne elemente stvarnog svijeta. Također će vam pomoći da cijenite kako markeri doprinose cjelokupnom besprijekornom i impresivnom korisničkom iskustvu.