Urobte prvé kroky v programovaní rozšírenej reality tým, že sa naučíte generovať zástupné symboly obsahu.
Pokiaľ ide o rozšírenú realitu, rozhodujúce je umiestnenie virtuálnych objektov a prekrytí. To je miesto, kde prichádzajú značky ArUco. Značky ArUco sú jednoduché binárne vzory, ktoré môžete umiestniť do skutočných slovných scén a prekryť digitálny obsah.
Môžete ich vytlačiť na papier, zobraziť na obrazovke alebo premietnuť na objekty v reálnom svete. Táto flexibilita z nich robí obľúbenú voľbu v aplikáciách počítačového videnia.
Modul ArUco a knižnica OpenCV
Na generovanie značiek ArUco potrebujete modul ArUco, ktorý je súčasťou knižnice OpenCV. OpenCV je knižnica, ktorá obsahuje množstvo nástrojov a funkcií na vývoj aplikácie počítačového videnia.
Modul umožňuje generovať, detegovať a rozpoznávať značky ArUco. Umožňuje vám tiež vykonať odhad pozície. To zase umožňuje zarovnať virtuálne objekty so skutočným svetom a vytvárať tak pohlcujúci a bezproblémový používateľský zážitok.
Nastavenie vášho prostredia
Vytvorte nové virtuálne prostredie Pythonu. Tým sa zabezpečí, že pri inštalácii požadovaných knižníc vášho projektu nedôjde ku konfliktu verzií balíkov. Potom prejdite na terminál a spustite nasledujúci príkaz na inštaláciu OpenCV.
pip nainštalovať opencv-contrib-python
Vyššie uvedený príkaz nainštaluje knižnicu OpenCV contrib. Obsahuje modul ArUco, ktorý použijete na vytvorenie generátora značiek. Uistite sa, že si nainštalujete túto verziu, nie OpenCV-python, pretože tá nezahŕňa funkcie, ktoré potrebujete.
Úplný zdrojový kód je dostupný v a úložisko GitHub.
Vytvorenie programu generátora ArUco Maker
Vytvorenie značkovacieho programu ArUco je celkom jednoduché. Je to preto, že modul AruCo robí väčšinu ťažkých nákladov za vás. Začnite importovaním OpenCV, aby ste mohli vo svojom kóde používať jeho funkcie a nástroje.
importovať cv2
Definujte funkciu, ktorá vygeneruje jednu značku so špecifickým ID. To sa postará o to, keď nie sú značky potrebné vo veľkom.
defvygenerovať_jediný_marker(aruco_dict):
veľkosť_značky = int (vstup("Zadajte veľkosť značky: "))
marker_id = int (vstup("Zadajte ID značky: "))marker_img = cv2.aruco.generateImageMarker (aruco_dict, marker_id,
marker_size)cv2.imwrite("marker_{}.png".format (marker_id), marker_img)
marker_img = cv2.imread("marker_{}.png".format (marker_id))
cv2.imshow("značka", marker_img)
vytlačiť ("Rozmery:", marker_img.shape)
cv2.waitKey(0)
Potom definujte funkciu, ktorá bude hromadne generovať určitý počet značiek. Počet značiek, ktoré môžete vygenerovať, sa bude líšiť v závislosti od OpenCV slovník používaš. Je to preto, že niektoré slovníky podporujú generovanie väčšieho počtu značiek ako iné.
defgenerovať_hromadné_značky(aruco_dict):
veľkosť_značky = int (vstup("Zadajte veľkosť značky: "))
num_markers = int (vstup("Zadajte počet značiek, ktoré sa majú vygenerovať: "))
marker_imgs = []pre marker_id v rozsah (počet_značiek):
marker_img = cv2.aruco.generateImageMarker (aruco_dict, marker_id,
marker_size)cv2.imwrite("marker_{}.png".format (marker_id), marker_img)
marker_imgs.append (cv2.imread("marker_{}.png".format (marker_id)))
pre marker_img v marker_imgs:
cv2.imshow("značka", marker_img)
vytlačiť ("Rozmery:", marker_img.shape)
cv2.waitKey(0)
Nakoniec definujte hlavnú funkciu, ktorá bude riadiť tok programu a požiada používateľa o požadovanú operáciu. Uistite sa, že sa spustí ako prvý pri spustení programu.
defHlavná():
aruco_dict = cv2.aruco.getPredefinedDictionary (cv2.aruco. DICT_4X4_50)user_input = input("Stlačením '1' vygenerujete jednu značku alebo "
"2" na hromadné generovanie značiek: ")ak user_input == "1":
create_single_marker (aruco_dict)
elif user_input == "2":
generovať_hromadné_značky (aruco_dict)
inak:
vytlačiť ("Neplatný vstup. Prosím skúste znova.")
ak __meno__ == "__Hlavná__":
Hlavná()
Teraz spustite program na vygenerovanie jednej značky alebo hromadne. Výstup programu bude vyzerať asi takto:
Výstup zobrazuje vygenerovaný marker ArUco. Program uloží každú značku s číslom na konci jej názvu, ktoré predstavuje ID značky.
Čo ďalej po vygenerovaní značiek ArUco?
Po vygenerovaní značiek ArUco si môžete vytvoriť vlastnú jednoduchú aplikáciu počítačového videnia. To vám pomôže naučiť sa používať značky na prekrytie digitálnych informácií do vizuálov v reálnom svete. Pomôže vám tiež oceniť, ako značky prispievajú k celému bezproblémovému a pohlcujúcemu používateľskému zážitku.