示例#1
0
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()
示例#2
0
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)
示例#3
0

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()
示例#4
0
def tearDown():
    print("teardown module")
    glfw.Terminate()