1
1
"""
2
- """
3
2
DeepLabCut Toolbox (deeplabcut.org)
4
3
© A. & M. Mathis Labs
5
4
@@ -19,7 +18,8 @@ class TISCam(Camera):
19
18
@staticmethod
20
19
def arg_restrictions ():
21
20
22
- return {'serial_number' : TIS_CAM().GetDevices()}
21
+ return {'serial_number' : TIS_CAM ().GetDevices (),
22
+ 'rotate' : [0 , 90 , 180 , 270 ]}
23
23
24
24
25
25
def __init__ (self ,
@@ -29,7 +29,8 @@ def __init__(self,
29
29
rotate = 0 ,
30
30
crop = None ,
31
31
fps = 100 ,
32
- display=True):
32
+ display = True ,
33
+ display_resize = 1.0 ):
33
34
'''
34
35
Params
35
36
------
@@ -38,11 +39,16 @@ def __init__(self,
38
39
default = None, uses default parameters specific to camera
39
40
'''
40
41
41
- super().__init__(serial_number, exposure=exposure, rotate=rotate, crop=crop, fps=fps)
42
+ if (rotate == 90 ) or (rotate == 270 ):
43
+ resolution = [resolution [1 ], resolution [0 ]]
44
+
45
+ super ().__init__ (serial_number , resolution = resolution , exposure = exposure , rotate = rotate , crop = crop , fps = fps , use_tk_display = display , display_resize = display_resize )
42
46
self .display = display
43
47
44
- def set_exposure(self, val):
45
48
49
+ def set_exposure (self ):
50
+
51
+ val = self .exposure
46
52
val = 1 if val > 1 else val
47
53
val = 0 if val < 0 else val
48
54
self .cam .SetPropertyAbsoluteValue ("Exposure" , "Value" , val )
@@ -55,49 +61,54 @@ def get_exposure(self):
55
61
return round (exposure [0 ], 3 )
56
62
57
63
58
- def set_crop (self , crop ):
64
+ # def set_crop(self):
59
65
60
- if crop :
61
- left = crop [0 ]
62
- width = crop [1 ]- left
63
- top = crop [3 ]
64
- height = top - crop [2 ]
66
+ # crop = self.crop
65
67
66
- if not self .crop_filter :
67
- self .crop_filter = self .cam .CreateFrameFilter (b'ROI' )
68
- self .cam .AddFrameFilter (self .crop_filter )
68
+ # if crop:
69
+ # top = int(crop[0])
70
+ # left = int(crop[2])
71
+ # height = int(crop[1]-top)
72
+ # width = int(crop[3]-left)
69
73
70
- self .cam .FilterSetParameter (self .crop_filter , b'Top' , top )
71
- self .cam .FilterSetParameter (self .crop_filter , b'Left' , left )
72
- self .cam .FilterSetParameter (self .crop_filter , b'Height' , height )
73
- self .cam .FilterSetParameter (self .crop_filter , b'Width' , width )
74
- self .im_size = (width , height )
74
+ # if not self.crop_filter:
75
+ # self.crop_filter = self.cam.CreateFrameFilter(b'ROI')
76
+ # self.cam.AddFrameFilter(self.crop_filter)
75
77
78
+ # self.cam.FilterSetParameter(self.crop_filter, b'Top', top)
79
+ # self.cam.FilterSetParameter(self.crop_filter, b'Left', left)
80
+ # self.cam.FilterSetParameter(self.crop_filter, b'Height', height)
81
+ # self.cam.FilterSetParameter(self.crop_filter, b'Width', width)
76
82
77
- def set_rotation (self , rotate ):
83
+
84
+ def set_rotation (self ):
78
85
79
86
if not self .rotation_filter :
80
87
self .rotation_filter = self .cam .CreateFrameFilter (b'Rotate Flip' )
81
88
self .cam .AddFrameFilter (self .rotation_filter )
82
- self .cam .FilterSetParameter (self .rotation_filter , b'Rotation Angle' , rotate )
89
+ self .cam .FilterSetParameter (self .rotation_filter , b'Rotation Angle' , self . rotate )
83
90
84
91
85
- def set_fps (self , fps ):
92
+ def set_fps (self ):
86
93
87
- self .fps = fps
88
- self .cam .SetFrameRate (fps )
94
+ self .cam .SetFrameRate (self .fps )
89
95
90
96
91
97
def set_capture_device (self ):
92
98
93
99
self .cam = TIS_CAM ()
94
100
self .crop_filter = None
95
101
self .rotation_filter = None
96
- self .next_frame = None
102
+ self .set_rotation ()
103
+ # self.set_crop()
104
+ self .set_fps ()
105
+ self .next_frame = time .time ()
97
106
98
- self .cam .open (self .serial_number )
107
+ self .cam .open (self .id )
99
108
self .cam .SetContinuousMode (0 )
100
- self .cam .StartLive (int (self .display ))
109
+ self .cam .StartLive (0 )
110
+
111
+ self .set_exposure ()
101
112
102
113
return True
103
114
@@ -107,10 +118,11 @@ def get_image(self):
107
118
self .cam .SnapImage ()
108
119
frame = self .cam .GetImageEx ()
109
120
frame = cv2 .flip (frame , 0 )
121
+ if self .crop is not None :
122
+ frame = frame [self .crop [0 ]:self .crop [1 ], self .crop [2 ]:self .crop [3 ]]
110
123
return frame
111
124
112
125
113
126
def close_capture_device (self ):
114
127
115
128
self .cam .StopLive ()
116
- self .cam .close ()
0 commit comments