Udělejte první kroky v programování rozšířené reality tím, že se naučíte generovat zástupné symboly obsahu.

Pokud jde o rozšířenou realitu, je rozhodující umístění virtuálních objektů a překryvů. To je místo, kde přicházejí značky ArUco. Značky ArUco jsou jednoduché binární vzory, které můžete umístit do skutečných slovních scén a překrýt tak digitální obsah.

Můžete je vytisknout na papír, zobrazit na obrazovce nebo promítnout na objekty reálného světa. Tato flexibilita z nich dělá oblíbenou volbu v aplikacích počítačového vidění.

Modul ArUco a knihovna OpenCV

Ke generování značek ArUco potřebujete modul ArUco, který je součástí knihovny OpenCV. OpenCV je knihovna, která obsahuje spoustu nástrojů a funkcí pro vývoj aplikace počítačového vidění.

Modul umožňuje generovat, detekovat a rozpoznávat značky ArUco. Umožňuje také provést odhad pozice. To zase umožňuje zarovnat virtuální objekty se skutečným světem a vytvořit tak pohlcující a bezproblémový uživatelský zážitek.

Nastavení vašeho prostředí

instagram viewer

Vytvořte nové virtuální prostředí Pythonu. To zajistí, že při instalaci požadovaných knihoven vašeho projektu nedojde ke konfliktu verzí balíčku. Poté přejděte k terminálu a spusťte následující příkaz pro instalaci OpenCV.

pip install opencv-contrib-python

Výše uvedený příkaz nainstaluje knihovnu OpenCV contrib. Obsahuje modul ArUco, který použijete k vytvoření generátoru značek. Ujistěte se, že jste nainstalovali tuto verzi, ne OpenCV-python, protože ta nezahrnuje funkce, které potřebujete.

Úplný zdrojový kód je k dispozici v a úložiště GitHub.

Vytvoření programu generátoru ArUco Maker

Vytvoření značkovacího programu ArUco je poměrně jednoduché. Je to proto, že modul AruCo dělá většinu těžkých břemen za vás. Začněte importem OpenCV, abyste mohli ve svém kódu používat jeho funkce a nástroje.

import cv2

Definujte funkci, která vygeneruje jednu značku se specifickým ID. To se postará o to, když značky nejsou potřeba ve velkém.

defvygenerovat_jeden_marker(aruco_dict):
marker_size = int (vstup("Zadejte velikost značky: "))
marker_id = int (vstup("Zadejte ID značky: "))

marker_img = cv2.aruco.generateImageMarker (aruco_dict, marker_id,
velikost_značky)

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

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

cv2.imshow("Popisovač", marker_img)

tisk("Rozměry:", marker_img.shape)

cv2.waitKey(0)

Poté definujte funkci, která bude hromadně generovat určitý počet značek. Počet značek, které můžete vygenerovat, se bude lišit podle Slovník OpenCV používáš. Je to proto, že některé slovníky podporují generování více značek než jiné.

defgenerovat_hromadné_značky(aruco_dict):
marker_size = int (vstup("Zadejte velikost značky: "))
num_markers = int (vstup("Zadejte počet značek, které se mají vygenerovat: "))
marker_imgs = []

pro marker_id v rozsah (počet_značek):
marker_img = cv2.aruco.generateImageMarker (aruco_dict, marker_id,
velikost_značky)

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

pro marker_img v marker_imgs:
cv2.imshow("Popisovač", marker_img)
tisk("Rozměry:", marker_img.shape)
cv2.waitKey(0)

Nakonec definujte hlavní funkci, která bude řídit tok programu a požádá uživatele o požadovanou operaci. Ujistěte se, že se spustí jako první při spuštění programu.

defhlavní():
aruco_dict = cv2.aruco.getPredefinedDictionary (cv2.aruco. DICT_4X4_50)

user_input = input("Stisknutím "1" vygenerujete jednu značku nebo "
"'2' pro hromadné generování značek: ")

-li user_input == "1":
create_single_marker (aruco_dict)
elif user_input == "2":
generovat_hromadné_markery (aruco_dict)
jiný:
tisk("Neplatný vstup. Prosím zkuste to znovu.")

-li __jméno__ == "__hlavní__":
hlavní()

Nyní spusťte program a vygenerujte jednu značku nebo hromadně. Výstup programu bude vypadat nějak takto:

Výstup zobrazuje vygenerovanou značku ArUco. Program uloží každý štítek s číslem na konci názvu, které představuje ID štítku.

Co dál po vygenerování značek ArUco?

Po vygenerování značek ArUco si můžete vytvořit vlastní jednoduchou aplikaci pro počítačové vidění. To vám pomůže naučit se používat značky k překrývání digitálních informací do vizuálních prvků reálného světa. Pomůže vám také ocenit, jak značky přispívají k celému bezproblémovému a pohlcujícímu uživatelskému zážitku.