def main(): # * Initialize graphics subsystem initGraphics() # * Open camera and create GLCameraViewer instance camera = cv2.VideoCapture(0) # NOTE: Live camera can be substituted with recorded video here cameraViewer = GLCameraViewer(camera) # * Main GLFW loop while glfw.GetWindowParam(glfw.OPENED): # ** Handle events glfw.PollEvents() if glfw.GetKey(glfw.KEY_ESC): break # ** Run cameraViewer through one iteration of processing cameraViewer.capture() cameraViewer.process() # ** Clear current output and render glClear(GL_COLOR_BUFFER_BIT) cameraViewer.render() # ** Present rendered output glfw.SwapBuffers() # * Clean up cameraViewer.cleanUp() camera.release() glfw.Terminate()
def RenderHead(folderPath, headMeshName, textureName, capturePath=None): global orthoSize, currentHandle print folderPath if capturePath != None: capturePath = os.path.join(capturePath, os.path.basename(folderPath)) mesh = LoadObj(os.path.join(folderPath, headMeshName)) orthoSize = mesh.radius * 1.5 print 'mesh center = ', mesh.center print 'mesh radius = ', mesh.radius print 'len texturecoord = ', len(mesh.textureCoords) print 'len faces = ', len(mesh.faces) print 'len vertex = ', len(mesh.vertexs) # PrintList(mesh.vertexs) textureImg = Image.Image() textureImg = Image.open(os.path.join(folderPath, textureName)) textureHandle = None arr = PIL2array(textureImg) # tempImage = array2PIL(arr, textureImg.size) # textureImg.save(os.path.join(folderPath, 'temp_texture.jpg')) # print arr.size # print textureImg.format print 'texture size = ', textureImg.size # print textureImg.size[0], textureImg.size[1] # print textureImg.info print list(textureImg.getdata())[0] print textureImg.mode angle = 0 textureHandle = init(textureImg) currentHandle = textureHandle Render(mesh, textureImg, angle) glfw.SwapBuffers() print 'handle = ', textureHandle endFlag = 361 angleChange = {0: 30, 30: -30, -30: endFlag} while (True): Render(mesh, textureImg, textureHandle, angle) if (glfw.GetKey(glfw.KEY_ESC) == glfw.GLFW_PRESS): break # angle += 1; if (angleChange.get(angle) != None): captureImage = CaptureOpenGLImage() captureImage.save(folderPath + '/capture_' + str(angle) + '.jpg') if capturePath != None: captureImage.save(capturePath + '_capture_' + str(angle) + '.jpg') angle = angleChange[angle] else: print 'end' glfw.Terminate() glfw.CloseWindow() break glfw.SwapBuffers() time.sleep(0.02)
def init(): width = 640 height = 480 glfw.Init() glfw.OpenWindow(width, height, 8, 8, 8, 0, 24, 0, glfw.WINDOW) glfw.SetWindowTitle("glfw line") glfw.SetWindowSizeCallback(Reshape) glEnable(GL_DEPTH_TEST) glPolygonMode(GL_BACK, GL_LINE) # set eht projection # mouse glfw.SetMouseButtonCallback(MouseHandler) glfw.SetKeyCallback(KeyboardHandler) # init() while (True): Display() glfw.SwapBuffers() if (glfw.GetKey(glfw.KEY_ESC) == glfw.GLFW_PRESS): break time.sleep(0.02) xAxisAngle += 1 yAxisAngle += 1 glfw.Terminate()
def tearDown(): print("teardown module") glfw.Terminate()