diff options
Diffstat (limited to 'tests/opencv_example.py')
| -rw-r--r-- | tests/opencv_example.py | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/tests/opencv_example.py b/tests/opencv_example.py new file mode 100644 index 0000000..238e8b4 --- /dev/null +++ b/tests/opencv_example.py @@ -0,0 +1,76 @@ +from __future__ import absolute_import, print_function, division +from pymba import * +import numpy as np +import cv2 +import time + +#very crude example, assumes your camera is PixelMode = BAYERRG8 + +# start Vimba +with Vimba() as vimba: + # 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() + |
