diff options
Diffstat (limited to 'pyvimba/tests')
| -rw-r--r-- | pyvimba/tests/opencv_example.py | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/pyvimba/tests/opencv_example.py b/pyvimba/tests/opencv_example.py new file mode 100644 index 0000000..36b5108 --- /dev/null +++ b/pyvimba/tests/opencv_example.py @@ -0,0 +1,80 @@ +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() + |
