-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathflir_capture.py
91 lines (69 loc) · 1.96 KB
/
flir_capture.py
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
import sys
import time
import PySpin
import numpy as np
import cv2
def set_trigger_mode_software(cam):
cam.TriggerMode.SetValue(PySpin.TriggerMode_Off)
cam.TriggerSource.SetValue(PySpin.TriggerSource_Software)
cam.TriggerMode.SetValue(PySpin.TriggerMode_On)
print("set trigger mode software")
def reset_trigger_mode_software(cam):
cam.TriggerMode.SetValue(PySpin.TriggerMode_Off)
print("reset trigger mode")
#
# setup
#
system = PySpin.System.GetInstance()
cam_list = system.GetCameras()
print("number of cameras {}".format(cam_list.GetSize()))
if cam_list.GetSize() == 0:
print("no cameras found, aborting")
system.ReleaseInstance()
del system
sys.exit()
cameras = []
for i in range(cam_list.GetSize()):
cam = cam_list.GetByIndex(i)
print("camera {} serial: {}".format(i, cam.GetUniqueID()))
cam.Init()
cam.AcquisitionMode.SetValue(PySpin.AcquisitionMode_Continuous)
set_trigger_mode_software(cam)
cam.BeginAcquisition()
cameras.append(cam)
#
# loop
#
count = 0
while 1:
if cv2.waitKey(1) == 27: # ESC
cv2.destroyAllWindows()
break
for cam in cameras:
cam.TriggerSoftware()
i = cam.GetNextImage()
#print(i.GetWidth(), i.GetHeight(), i.GetBitsPerPixel())
if i.IsIncomplete():
pass
else:
# see documentation: enum ColorProcessingAlgorithm
image_converted = i.Convert(PySpin.PixelFormat_BGR8, PySpin.DIRECTIONAL_FILTER)
image_data = image_converted.GetData()
cvi = np.frombuffer(image_data, dtype=np.uint8)
cvi = cvi.reshape((i.GetHeight(),i.GetWidth(),3))
print(cvi.shape)
cv2.imshow("cam1",cvi)
i.Release()
del i
#
# cleanup
#
for cam in cameras:
cam.EndAcquisition()
reset_trigger_mode_software(cam)
cam.DeInit()
del cam
del cameras
del cam_list
system.ReleaseInstance()
del system