from vimba import *
import numpy as np
import cv2
import time

#very crude example, assumes your camera is PixelMode = BAYERRG8

# start Vimba
vimba = Vimba()
vimba.startup()

# get system object
system = vimba.getSystem()

# list available cameras (after enabling discovery for GigE cameras)
if system.GeVTLIsPresent:
    system.runFeatureCommand("GeVDiscoveryAllOnce")
    time.sleep(0.2)
cameraIds = vimba.getCameraIds()
for cameraId in cameraIds:
    print 'Camera ID:', cameraId

# get and open a camera
camera0 = vimba.getCamera(cameraIds[0])
camera0.openCamera()

# list camera features
cameraFeatureNames = camera0.getFeatureNames()
for name in cameraFeatureNames:
    print 'Camera feature:', name

# read info of a camera feature
#featureInfo = camera0.getFeatureInfo('AcquisitionMode')
#for field in featInfo.getFieldNames():
#    print field, '--', getattr(featInfo, field)

# get the value of a feature
print camera0.AcquisitionMode

# set the value of a feature
camera0.AcquisitionMode = 'SingleFrame'

# create new frames for the camera
frame0 = camera0.getFrame()    # creates a frame
frame1 = camera0.getFrame()    # creates a second frame

# announce frame
frame0.announceFrame()

# capture a camera image
count = 0
while count < 10:
    camera0.startCapture()
    frame0.queueFrameCapture()
    camera0.runFeatureCommand('AcquisitionStart')
    camera0.runFeatureCommand('AcquisitionStop')
    frame0.waitFrameCapture()
    
    # get image data...
    imgData = frame0.getBufferByteData()
    
    moreUsefulImgData = np.ndarray(buffer = frame0.getBufferByteData(),
                                   dtype = np.uint8,
                                   shape = (frame0.height,
                                            frame0.width,
                                            1))
    rgb = cv2.cvtColor(moreUsefulImgData, cv2.COLOR_BAYER_RG2RGB)
    cv2.imwrite('foo{}.png'.format(count), rgb)
    print "image {} saved".format(count)
    count += 1
    camera0.endCapture()
# clean up after capture
camera0.revokeAllFrames()

# close camera
camera0.closeCamera()

# shutdown Vimba
vimba.shutdown()


add an example for working with the camera in opencv