aboutsummaryrefslogtreecommitdiff
path: root/examples/camera
diff options
context:
space:
mode:
authormorefigs <morefigs@gmail.com>2019-01-30 15:12:13 +1100
committermorefigs <morefigs@gmail.com>2019-01-30 15:12:13 +1100
commit8001a079833ff96b855cb6f618b1c23a5b05ad7d (patch)
treec145667c5e9d32d90655689549d1072c0af1a61b /examples/camera
parent87a55df00f138e0b3f5b8469c2a43f868704426c (diff)
parent7a915f3af6af7a3a8ef6c9d28aeb87392df3c8b4 (diff)
downloadpymba-8001a079833ff96b855cb6f618b1c23a5b05ad7d.tar.gz
pymba-8001a079833ff96b855cb6f618b1c23a5b05ad7d.zip
v0.2 to master
Diffstat (limited to 'examples/camera')
-rw-r--r--examples/camera/get_camera_object.py9
-rw-r--r--examples/camera/list_camera_ids.py7
-rw-r--r--examples/camera/list_feature_infos.py14
-rw-r--r--examples/camera/list_feature_names.py13
-rw-r--r--examples/camera/list_feature_values_and_ranges.py34
-rw-r--r--examples/camera/opencv_capture_image.py34
-rw-r--r--examples/camera/opencv_capture_image_with_callback.py44
-rw-r--r--examples/camera/write_feature_value.py22
8 files changed, 177 insertions, 0 deletions
diff --git a/examples/camera/get_camera_object.py b/examples/camera/get_camera_object.py
new file mode 100644
index 0000000..7a830f7
--- /dev/null
+++ b/examples/camera/get_camera_object.py
@@ -0,0 +1,9 @@
+from pymba import Vimba
+
+
+if __name__ == '__main__':
+
+ with Vimba() as vimba:
+ # provide camera index or id
+ camera = vimba.camera(0)
+ print(camera)
diff --git a/examples/camera/list_camera_ids.py b/examples/camera/list_camera_ids.py
new file mode 100644
index 0000000..670d71f
--- /dev/null
+++ b/examples/camera/list_camera_ids.py
@@ -0,0 +1,7 @@
+from pymba import Vimba
+
+
+if __name__ == '__main__':
+
+ with Vimba() as vimba:
+ print(vimba.camera_ids())
diff --git a/examples/camera/list_feature_infos.py b/examples/camera/list_feature_infos.py
new file mode 100644
index 0000000..03ad935
--- /dev/null
+++ b/examples/camera/list_feature_infos.py
@@ -0,0 +1,14 @@
+from pymba import Vimba
+
+
+if __name__ == '__main__':
+
+ with Vimba() as vimba:
+ camera = vimba.camera(0)
+ camera.open()
+
+ for feature_name in camera.feature_names():
+ feature = camera.feature(feature_name)
+ print(feature.info)
+
+ camera.close()
diff --git a/examples/camera/list_feature_names.py b/examples/camera/list_feature_names.py
new file mode 100644
index 0000000..d3415dc
--- /dev/null
+++ b/examples/camera/list_feature_names.py
@@ -0,0 +1,13 @@
+from pymba import Vimba
+
+
+if __name__ == '__main__':
+
+ with Vimba() as vimba:
+ camera = vimba.camera(0)
+ camera.open()
+
+ for feature_name in camera.feature_names():
+ print(feature_name)
+
+ camera.close()
diff --git a/examples/camera/list_feature_values_and_ranges.py b/examples/camera/list_feature_values_and_ranges.py
new file mode 100644
index 0000000..353d48e
--- /dev/null
+++ b/examples/camera/list_feature_values_and_ranges.py
@@ -0,0 +1,34 @@
+from pymba import Vimba, VimbaException
+
+
+if __name__ == '__main__':
+
+ with Vimba() as vimba:
+ camera = vimba.camera(0)
+ camera.open()
+
+ # get feature value via feature object
+ for feature_name in camera.feature_names():
+ feature = camera.feature(feature_name)
+
+ try:
+ value = feature.value
+ range_ = feature.range
+
+ # alternatively the feature value can be read as an object attribute
+ # value = getattr(camera, feature_name)
+ # or
+ # value = camera.someFeatureName
+
+ except VimbaException as e:
+ value = e
+ range_ = None
+
+ print('\n\t'.join(
+ str(x) for x in (
+ feature_name,
+ f'value: {value}',
+ f'range: {range_}')
+ if x is not None))
+
+ camera.close()
diff --git a/examples/camera/opencv_capture_image.py b/examples/camera/opencv_capture_image.py
new file mode 100644
index 0000000..e8bf3d5
--- /dev/null
+++ b/examples/camera/opencv_capture_image.py
@@ -0,0 +1,34 @@
+import cv2
+from pymba import Vimba
+
+
+if __name__ == '__main__':
+
+ with Vimba() as vimba:
+ camera = vimba.camera(0)
+ camera.open()
+
+ # setup camera and frame and capture a single image
+ camera.AcquisitionMode = 'SingleFrame'
+ frame = camera.create_frame()
+ frame.announce()
+ camera.start_capture()
+ frame.queue_for_capture()
+ camera.run_feature_command('AcquisitionStart')
+ camera.run_feature_command('AcquisitionStop')
+ frame.wait_for_capture()
+
+ # get the image data as a numpy array
+ image = frame.image_numpy_array()
+
+ # display image
+ cv2.imshow(camera.camera_id, image)
+ # waits for user to close image
+ cv2.waitKey(0)
+
+ # stop capturing and clean up
+ camera.end_capture()
+ camera.flush_capture_queue()
+ camera.revoke_all_frames()
+
+ camera.close()
diff --git a/examples/camera/opencv_capture_image_with_callback.py b/examples/camera/opencv_capture_image_with_callback.py
new file mode 100644
index 0000000..4d5fa28
--- /dev/null
+++ b/examples/camera/opencv_capture_image_with_callback.py
@@ -0,0 +1,44 @@
+from time import sleep
+import cv2
+from pymba import Vimba
+from pymba.frame import Frame
+
+
+def on_callback(completed_frame: Frame):
+ print('Callback called!')
+
+ # get the image data as a numpy array
+ image = completed_frame.image_numpy_array()
+
+ # display image
+ cv2.imshow(camera.camera_id, image)
+ # waits for user to close image
+ cv2.waitKey(0)
+
+
+if __name__ == '__main__':
+
+ with Vimba() as vimba:
+ camera = vimba.camera(0)
+ camera.open()
+
+ # setup camera and frame and capture a single image
+ camera.AcquisitionMode = 'SingleFrame'
+ frame = camera.create_frame()
+ frame.announce()
+ camera.start_capture()
+ frame.queue_for_capture(on_callback)
+ camera.run_feature_command('AcquisitionStart')
+ camera.run_feature_command('AcquisitionStop')
+
+ # wait long enough for the frame callback to be called
+ for _ in range(100):
+ sleep(0.1)
+ print('.', end='')
+
+ # stop capturing and clean up
+ camera.end_capture()
+ camera.flush_capture_queue()
+ camera.revoke_all_frames()
+
+ camera.close()
diff --git a/examples/camera/write_feature_value.py b/examples/camera/write_feature_value.py
new file mode 100644
index 0000000..77f8ce5
--- /dev/null
+++ b/examples/camera/write_feature_value.py
@@ -0,0 +1,22 @@
+from pymba import Vimba
+
+
+if __name__ == '__main__':
+
+ with Vimba() as vimba:
+ camera = vimba.camera(0)
+ camera.open()
+
+ # read a feature value
+ feature = camera.feature('ExposureAuto')
+ value = feature.value
+
+ # set the feature value
+ feature.value = value
+
+ print(feature.name, '=', feature.value)
+
+ # alternatively the feature value can be set as an object attribute
+ camera.ExposureAuto = feature.value
+
+ camera.close()