Sekojiet pirmos soļus paplašinātās realitātes programmēšanai, uzzinot, kā ģenerēt satura vietturus.

Runājot par paplašināto realitāti, virtuālo objektu un pārklājumu pozicionēšana ir ļoti svarīga. Šeit parādās ArUco marķieri. ArUco marķieri ir vienkārši bināri raksti, kurus varat novietot reālu vārdu ainās, lai pārklātu digitālo saturu.

Varat tos izdrukāt uz papīra, parādīt uz ekrāna vai projicēt uz reālās pasaules objektiem. Šī elastība padara tos par populāru izvēli datorredzes lietojumprogrammās.

ArUco modulis un OpenCV bibliotēka

Lai ģenerētu ArUco marķierus, nepieciešams ArUco modulis, kas ir daļa no OpenCV bibliotēkas. OpenCV ir bibliotēka, kurā ir daudz rīku un funkciju izstrādei datorredzes lietojumprogrammas.

Modulis ļauj ģenerēt, noteikt un atpazīt ArUco marķierus. Tas arī ļauj veikt pozas aplēsi. Tas savukārt ļauj pieskaņot virtuālos objektus reālajai pasaulei, radot visaptverošu un vienmērīgu lietotāja pieredzi.

Jūsu vides iestatīšana

Izveidojiet jaunu Python virtuālo vidi. Tas nodrošinās, ka, instalējot projekta nepieciešamās bibliotēkas, nav pakotnes versiju konflikta. Pēc tam pārejiet uz termināli un palaidiet šo komandu, lai instalētu OpenCV.

pip instalēt opencv-contrib-python

Iepriekš minētā komanda instalē OpenCV ieguldījumu bibliotēku. Tajā ir ArUco modulis, ko izmantosit marķieru ģeneratora izveidei. Noteikti instalējiet šo versiju, nevis OpenCV-python, jo pēdējā neietver jums nepieciešamo funkcionalitāti.

Pilns pirmkods ir pieejams a GitHub repozitorijs.

ArUco Maker ģeneratora programmas izveide

ArUco marķieru programmas izveide ir pavisam vienkārša. Tas ir tāpēc, ka AruCo modulis veic lielāko daļu smaguma celšanas jūsu vietā. Sāciet ar OpenCV importēšanu, lai jūs varētu izmantot tā funkcijas un rīkus savā kodā.

imports cv2

Definējiet funkciju, kas ģenerēs vienu marķieri ar noteiktu ID. Tas noderēs gadījumos, kad marķieri nav nepieciešami vairumā.

defģenerēt_vienu_marķieri(aruco_dict):
marker_size = int (input("Ievadiet marķiera izmēru:"))
marker_id = int (input("Ievadiet marķiera ID:"))

marker_img = cv2.aruco.generateImageMarker (aruco_dict, marker_id,
marķiera_izmērs)

cv2.imwrite("marķieris_{}.png".format (marker_id), marker_img)

marker_img = cv2.imread("marķieris_{}.png".format (marker_id))

cv2.imshow("Marķieris", marķieris_attēls)

drukāt ("Izmēri:", marker_img.shape)

cv2.waitKey(0)

Pēc tam definējiet funkciju, kas ģenerēs noteiktu skaitu marķieru lielapjomā. ģenerējamo marķieru skaits atšķirsies atkarībā no OpenCV vārdnīca jūs izmantojat. Tas ir tāpēc, ka dažas vārdnīcas atbalsta vairāk marķieru ģenerēšanu nekā citas.

defgenerēt_bulk_marķierus(aruco_dict):
marker_size = int (input("Ievadiet marķiera izmēru:"))
num_markers = int (input("Ievadiet ģenerējamo marķieru skaitu: "))
marker_imgs = []

priekš marķiera_id iekšā diapazons (num_markers):
marker_img = cv2.aruco.generateImageMarker (aruco_dict, marker_id,
marķiera_izmērs)

cv2.imwrite("marķieris_{}.png".format (marker_id), marker_img)
marker_imgs.append (cv2.imread("marķieris_{}.png".format (marķiera_id)))

priekš marķieris_attēls iekšā marker_imgs:
cv2.imshow("Marķieris", marķieris_attēls)
drukāt ("Izmēri:", marker_img.shape)
cv2.waitKey(0)

Visbeidzot, definējiet galveno funkciju, kas kontrolēs programmas plūsmu, un jautājiet lietotājam vēlamo darbību. Pārliecinieties, ka programma tiek izpildīta vispirms.

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

user_input = ievade("Nospiediet "1", lai ģenerētu vienu marķieri vai "
"2", lai ģenerētu marķierus lielapjomā: ")

ja lietotāja_ievade == "1":
gener_single_marker (aruco_dict)
elifs lietotāja_ievade == "2":
gener_bulk_markers (aruco_dict)
cits:
drukāt ("Nepareiza ievade. Lūdzu mēģiniet vēlreiz.")

ja __nosaukums__ == "__galvenais__":
galvenais ()

Tagad palaidiet programmu, lai ģenerētu vienu marķieri vai masveidā. Programmas izvade izskatīsies apmēram šādi:

Izvade parāda ģenerētu ArUco marķieri. Programma saglabā katru marķieri ar numuru tā nosaukuma beigās, kas apzīmē marķiera ID.

Kas notiks tālāk pēc ArUco marķieru ģenerēšanas?

Pēc ArUco marķieru ģenerēšanas varat izveidot savu vienkāršu datora redzes lietojumprogrammu. Tas palīdzēs jums uzzināt, kā izmantot marķierus, lai pārklātu digitālo informāciju uz reālās pasaules vizuālajiem materiāliem. Tas arī palīdzēs jums novērtēt, kā marķieri veicina visu netraucētu un visaptverošu lietotāja pieredzi.