Naredite prve korake v programiranju obogatene resničnosti tako, da se naučite ustvarjati ograde za vsebino.

Ko gre za razširjeno resničnost, je pozicioniranje virtualnih objektov in prekrivk ključnega pomena. Tu pridejo na vrsto markerji ArUco. Označevalci ArUco so preprosti binarni vzorci, ki jih lahko postavite v resnične besedne prizore za prekrivanje digitalne vsebine.

Lahko jih natisnete na papir, prikažete na zaslonu ali projicirate na predmete iz resničnega sveta. Zaradi te prilagodljivosti so priljubljena izbira v aplikacijah za računalniški vid.

Modul ArUco in knjižnica OpenCV

Za ustvarjanje označevalcev ArUco potrebujete modul ArUco, ki je del knjižnice OpenCV. OpenCV je knjižnica, ki vsebuje veliko orodij in funkcij za razvoj aplikacije računalniškega vida.

Modul vam omogoča ustvarjanje, zaznavanje in prepoznavanje ArUco markerjev. Prav tako vam omogoča, da izvedete oceno drže. To pa omogoča uskladitev virtualnih predmetov z resničnim svetom, kar ustvarja poglobljeno in brezhibno uporabniško izkušnjo.

instagram viewer

Nastavitev vašega okolja

Ustvarite novo virtualno okolje Python. To bo zagotovilo, da med nameščanjem zahtevanih knjižnic vašega projekta ne bo navzkrižja različic paketa. Nato nadaljujte do terminala in zaženite naslednji ukaz za namestitev OpenCV.

pip namestite opencv-contrib-python

Zgornji ukaz namesti knjižnico prispevkov OpenCV. To vsebuje modul ArUco, ki ga boste uporabili za ustvarjanje generatorja markerjev. Prepričajte se, da namestite to različico, ne OpenCV-python, ker slednji ne vključuje funkcionalnosti, ki jo potrebujete.

Celotna izvorna koda je na voljo v a Repozitorij GitHub.

Ustvarjanje programa ArUco Maker Generator

Ustvarjanje programa za označevanje ArUco je povsem preprosto. To je zato, ker modul AruCo opravi večino težkega dela namesto vas. Začnite z uvozom OpenCV, da boste lahko uporabljali njegove funkcije in orodja v svoji kodi.

uvoz cv2

Definirajte funkcijo, ki bo ustvarila en sam marker z določenim ID-jem. To bo poskrbelo, ko markerji niso potrebni v velikem obsegu.

defgeneriraj_enotni_marker(aruco_dict):
velikost_markerja = int (vhod("Vnesite velikost označevalca: "))
marker_id = int (vhod("Vnesite ID markerja: "))

marker_img = cv2.aruco.generateImageMarker (aruco_dict, marker_id,
velikost_markerja)

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

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

cv2.imshow("Marker", marker_img)

natisni("Dimenzije:", marker_img.shape)

cv2.waitKey(0)

Nato definirajte funkcijo, ki bo množično generirala določeno število markerjev. Število oznak, ki jih lahko ustvarite, se razlikuje glede na Slovar OpenCV uporabljaš. To je zato, ker nekateri slovarji podpirajo ustvarjanje več oznak kot drugi.

defcreate_bulk_markers(aruco_dict):
velikost_markerja = int (vhod("Vnesite velikost označevalca: "))
num_markers = int (vhod("Vnesite število oznak za ustvarjanje: "))
marker_imgs = []

za marker_id v obseg (število_oznak):
marker_img = cv2.aruco.generateImageMarker (aruco_dict, marker_id,
velikost_markerja)

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

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

Na koncu definirajte glavno funkcijo, ki bo nadzorovala potek programa in uporabnika vprašala za želeno operacijo. Prepričajte se, da se najprej zažene, ko se program izvaja.

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

uporabniški_vnos = vnos("Pritisnite '1', da ustvarite en sam marker ali "
"'2' za ustvarjanje oznak v velikem obsegu: ")

če uporabniški_vnos == "1":
create_single_marker (aruco_dict)
elif uporabniški_vnos == "2":
create_bulk_markers (aruco_dict)
drugače:
natisni("Neveljaven vnos. Prosim poskusite ponovno.")

če __ime__ == "__glavni__":
glavni ()

Zdaj zaženite program za ustvarjanje enega samega markerja ali v velikem obsegu. Izhod programa bo videti nekako takole:

Izhod prikazuje ustvarjen marker ArUco. Program shrani vsak marker s številko na koncu imena, ki predstavlja ID markerja.

Kaj sledi po ustvarjanju označevalcev ArUco?

Po ustvarjanju označevalcev ArUco lahko ustvarite svojo preprosto aplikacijo za računalniški vid. To vam bo pomagalo, da se naučite uporabljati označevalce za prekrivanje digitalnih informacij z vizualnimi elementi iz resničnega sveta. Prav tako vam bo pomagalo ceniti, kako markerji prispevajo k celotni brezhibni in poglobljeni uporabniški izkušnji.