1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
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()
|