ovis_demo.py 956 Bytes
Newer Older
1
import numpy as np
2
import cv2 as cv
3 4

# add some external resources
5
cv.ovis.addResourceLocation("packs/Sinbad.zip")
6 7 8 9

# camera intrinsics
imsize = (800, 600)
K = np.diag([800, 800, 1])
10
K[:2, 2] = (400, 500) # offset pp
11 12

# observer scene
13 14
owin = cv.ovis.createWindow("VR", imsize)
cv.ovis.createGridMesh("ground", (10, 10), (10, 10))
15 16
owin.createEntity("ground", "ground", rot=(1.57, 0, 0))
owin.createCameraEntity("cam", K, imsize, 5)
17
owin.createEntity("figure", "Sinbad.mesh", tvec=(0, -5, 0), rot=(np.pi, 0, 0))  # externally defined mesh
18 19 20
owin.createLightEntity("sun", (0, 0, -100))

# interaction scene
21
iwin = cv.ovis.createWindow("AR", imsize, cv.ovis.SCENE_SEPERATE | cv.ovis.SCENE_INTERACTIVE)
22
iwin.createEntity("figure", "Sinbad.mesh", tvec=(0, -5, 0), rot=(np.pi, 0, 0))
23 24 25
iwin.createLightEntity("sun", (0, 0, -100))
iwin.setCameraIntrinsics(K, imsize)

26
while cv.ovis.waitKey(1) != 27:
27 28
    R, t = iwin.getCameraPose()
    owin.setEntityPose("cam", t, R)