Ota ensimmäiset askeleet lisätyn todellisuuden ohjelmoinnissa oppimalla luomaan sisällön paikkamerkkejä.
Mitä tulee lisättyyn todellisuuteen, virtuaalisten objektien ja peittokuvien sijoittaminen on ratkaisevan tärkeää. Siellä ArUco-merkit tulevat käyttöön. ArUco-merkit ovat yksinkertaisia binäärikuvioita, jotka voit sijoittaa todellisiin sanakohtauksiin digitaalisen sisällön päällekkäin.
Voit tulostaa ne paperille, näyttää ne näytöllä tai projisoida ne todellisiin esineisiin. Tämä joustavuus tekee niistä suositun valinnan tietokonenäkösovelluksissa.
ArUco-moduuli ja OpenCV-kirjasto
ArUco-merkkien luomiseen tarvitset ArUco-moduulin, joka on osa OpenCV-kirjastoa. OpenCV on kirjasto, joka sisältää paljon työkaluja ja toimintoja kehittämiseen tietokonenäkösovellukset.
Moduulin avulla voit luoda, havaita ja tunnistaa ArUco-merkkejä. Sen avulla voit myös suorittaa asennon arvioinnin. Tämä puolestaan mahdollistaa virtuaalisten objektien kohdistamisen todelliseen maailmaan, mikä luo mukaansatempaavan ja saumattoman käyttökokemuksen.
Ympäristösi luominen
Luo uusi Python-virtuaaliympäristö. Tämä varmistaa, ettei paketin versioristiriita ole, kun asennat projektisi vaadittuja kirjastoja. Siirry sitten terminaaliin ja suorita seuraava komento asentaaksesi OpenCV.
pip asennus opencv-contrib-python
Yllä oleva komento asentaa OpenCV contrib -kirjaston. Tämä sisältää ArUco-moduulin, jota käytät merkkigeneraattorin luomiseen. Varmista, että asennat tämän version, ei OpenCV-pythonin, koska jälkimmäinen ei sisällä tarvitsemiasi toimintoja.
Täysi lähdekoodi on saatavilla a GitHub-arkisto.
ArUco Maker Generator -ohjelman luominen
ArUco-merkkiohjelman luominen on melko yksinkertaista. Tämä johtuu siitä, että AruCo-moduuli hoitaa suurimman osan raskaiden nostoista puolestasi. Aloita tuomalla OpenCV, jotta voit käyttää sen toimintoja ja työkaluja koodissasi.
tuonti cv2
Määritä funktio, joka luo yhden merkin tietyllä tunnuksella. Tämä palvelee, kun merkkejä ei tarvita irtotavarana.
defgenero_single_marker(aruco_dict):
marker_size = int (input("Syötä merkin koko:"))
marker_id = int (input("Anna merkin tunnus:"))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("Markeri", marker_img)
Tulosta("Mitat:", marker_img.shape)
cv2.waitKey(0)
Määritä sitten funktio, joka luo tietyn määrän merkkejä joukkona. Luotavien merkkien määrä vaihtelee OpenCV sanakirja sinä käytät. Tämä johtuu siitä, että jotkut sanakirjat tukevat useamman merkkien luomista kuin toiset.
defgener_bulk_markers(aruco_dict):
marker_size = int (input("Syötä merkin koko:"))
num_markers = int (input("Anna luotavien merkkien määrä: "))
marker_imgs = []varten marker_id sisään alue (numeromerkit):
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)))
varten marker_img sisään marker_imgs:
cv2.imshow("Markeri", marker_img)
Tulosta("Mitat:", marker_img.shape)
cv2.waitKey(0)
Lopuksi määritä päätoiminto, joka ohjaa ohjelman kulkua ja kysy käyttäjältä haluttua toimintoa. Varmista, että se suoritetaan ensin, kun ohjelma suoritetaan.
defpää():
aruco_dict = cv2.aruco.getPredefinedDictionary (cv2.aruco. DICT_4X4_50)user_input = input("Luo yksi merkki painamalla '1' tai "
"'2" luomaan merkkejä joukkona: ")jos user_input == "1":
gener_single_marker (aruco_dict)
elif user_input == "2":
gener_bulk_markers (aruco_dict)
muu:
Tulosta("Virheellinen syöte. Yritä uudelleen.")
jos __nimi__ == "__main__":
pää()
Suorita nyt ohjelma luodaksesi yhden merkin tai joukkona. Ohjelman tulos näyttää suunnilleen tältä:
Tulos näyttää generoidun ArUco-merkin. Ohjelma tallentaa jokaisen merkin, jonka nimen loppuun on merkitty numero, joka edustaa merkin tunnusta.
Mitä seuraavaksi ArUco-merkkien luomisen jälkeen?
Kun olet luonut ArUco-merkit, voit luoda oman yksinkertaisen tietokonenäkösovelluksesi. Tämä auttaa sinua oppimaan käyttämään merkkejä digitaalisen tiedon peittämiseen todellisen maailman visuaaleihin. Se auttaa myös sinua ymmärtämään, kuinka merkit edistävät koko saumatonta ja mukaansatempaavaa käyttökokemusta.