11"""
2- """
32DeepLabCut Toolbox (deeplabcut.org)
43© A. & M. Mathis Labs
54
@@ -19,7 +18,8 @@ class TISCam(Camera):
1918 @staticmethod
2019 def arg_restrictions ():
2120
22- return {'serial_number' : TIS_CAM().GetDevices()}
21+ return {'serial_number' : TIS_CAM ().GetDevices (),
22+ 'rotate' : [0 , 90 , 180 , 270 ]}
2323
2424
2525 def __init__ (self ,
@@ -29,7 +29,8 @@ def __init__(self,
2929 rotate = 0 ,
3030 crop = None ,
3131 fps = 100 ,
32- display=True):
32+ display = True ,
33+ display_resize = 1.0 ):
3334 '''
3435 Params
3536 ------
@@ -38,11 +39,16 @@ def __init__(self,
3839 default = None, uses default parameters specific to camera
3940 '''
4041
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 )
4246 self .display = display
4347
44- def set_exposure(self, val):
4548
49+ def set_exposure (self ):
50+
51+ val = self .exposure
4652 val = 1 if val > 1 else val
4753 val = 0 if val < 0 else val
4854 self .cam .SetPropertyAbsoluteValue ("Exposure" , "Value" , val )
@@ -55,49 +61,54 @@ def get_exposure(self):
5561 return round (exposure [0 ], 3 )
5662
5763
58- def set_crop (self , crop ):
64+ # def set_crop(self):
5965
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
6567
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)
6973
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)
7577
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)
7682
77- def set_rotation (self , rotate ):
83+
84+ def set_rotation (self ):
7885
7986 if not self .rotation_filter :
8087 self .rotation_filter = self .cam .CreateFrameFilter (b'Rotate Flip' )
8188 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 )
8390
8491
85- def set_fps (self , fps ):
92+ def set_fps (self ):
8693
87- self .fps = fps
88- self .cam .SetFrameRate (fps )
94+ self .cam .SetFrameRate (self .fps )
8995
9096
9197 def set_capture_device (self ):
9298
9399 self .cam = TIS_CAM ()
94100 self .crop_filter = None
95101 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 ()
97106
98- self .cam .open (self .serial_number )
107+ self .cam .open (self .id )
99108 self .cam .SetContinuousMode (0 )
100- self .cam .StartLive (int (self .display ))
109+ self .cam .StartLive (0 )
110+
111+ self .set_exposure ()
101112
102113 return True
103114
@@ -107,10 +118,11 @@ def get_image(self):
107118 self .cam .SnapImage ()
108119 frame = self .cam .GetImageEx ()
109120 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 ]]
110123 return frame
111124
112125
113126 def close_capture_device (self ):
114127
115128 self .cam .StopLive ()
116- self .cam .close ()
0 commit comments