demo

import numpy as np
import cv2
import usb.core
import usb.backend.libusb1
import time

dev = usb.core.find(idVendor=0x18e3, idProduct=0x5031)
if dev.is_kernel_driver_active(0):
    try:
        dev.detach_kernel_driver(0)
        print "kernel driver detached"
    except usb.core.USBError as e:
        sys.exit("Could not detach kernel driver: %s" % str(e))
else:
    print "no kernel driver attached"
dev.ctrl_transfer(0x21,0x01,0x0800,0x0600,[0x50,0xff])
dev.ctrl_transfer(0x21,0x01,0x0f00,0x0600,[0x00,0xf6])
dev.ctrl_transfer(0x21,0x01,0x0800,0x0600,[0x25,0x00])
dev.ctrl_transfer(0x21,0x01,0x0800,0x0600,[0x5f,0xfe])
dev.ctrl_transfer(0x21,0x01,0x0f00,0x0600,[0x00,0x03])
dev.ctrl_transfer(0x21,0x01,0x0f00,0x0600,[0x00,0x02])
dev.ctrl_transfer(0x21,0x01,0x0f00,0x0600,[0x00,0x12])
dev.ctrl_transfer(0x21,0x01,0x0f00,0x0600,[0x00,0x04])
dev.ctrl_transfer(0x21,0x01,0x0800,0x0600,[0x76,0xc3])
dev.ctrl_transfer(0x21,0x01,0x0a00,0x0600,[4,0x00])

cap = cv2.VideoCapture(1)
if not cap.isOpened():
    print "camera not opened."
    exit()

k=0
while (k!=ord('q')):
    ret,frame=cap.read()
    cv2.imshow("cam_test",frame)

    k=cv2.waitKey(18)&0xFF
    kv=k-ord('0')
    #  print(kv)
    #  if press 1,2,3 or 4, change the 3d camera mode
    if kv in [1,2,3,4]:
        dev.ctrl_transfer(0x21,0x01,0x0a00,0x0600,[kv,0x00])