aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsm <sm@zing-laptop.com>2014-04-02 14:53:05 -0400
committersm <sm@zing-laptop.com>2014-04-02 14:53:05 -0400
commit54bec3f39dc7915593a29c22ed1aac0e29ab53b6 (patch)
tree6946c28694b5e26c3d2837f214fb4e527ec5a55b
parent58ea42a7689cd3584f014551adf4d5b297b65599 (diff)
downloadpymba-54bec3f39dc7915593a29c22ed1aac0e29ab53b6.tar.gz
pymba-54bec3f39dc7915593a29c22ed1aac0e29ab53b6.zip
add an example for working with the camera in opencv
-rw-r--r--opencv_example.py80
1 files changed, 80 insertions, 0 deletions
diff --git a/opencv_example.py b/opencv_example.py
new file mode 100644
index 0000000..36b5108
--- /dev/null
+++ b/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()
+