Skip to content

Commit 63f0c9e

Browse files
MMathisLabgkane26
authored andcommitted
update setup, fix bugs in windows tiscamera
1 parent 3a1fd83 commit 63f0c9e

File tree

5 files changed

+46
-61
lines changed

5 files changed

+46
-61
lines changed

dlclivegui/camera/camera.py

Lines changed: 2 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ def __init__(self,
7272
self.fps = fps
7373
self.use_tk_display = use_tk_display
7474
self.display_resize = display_resize if display_resize else 1.0
75+
self.next_frame = 0
7576

7677

7778
def set_im_size(self, res):
@@ -135,32 +136,4 @@ def close_capture_device(self):
135136
"""
136137

137138
raise NotImplementedError
138-
139-
140-
141-
def get_display_frame(self):
142-
""" Get latest frame for display
143-
144-
Returns
145-
-------
146-
:class:`numpy.ndarray`
147-
the lastest frame
148-
"""
149-
150-
frame_read = qread(self.display_frame_queue, self.display_frame_lock)
151-
if frame_read is not None:
152-
frame, _ = frame_read
153-
if self.display_resize != 1:
154-
frame = cv2.resize(frame, (int(frame.shape[1]*self.display_resize), int(frame.shape[0]*self.display_resize)))
155-
else:
156-
frame = None
157-
158-
return frame
159-
160-
161-
162-
def close_capture_device(self):
163-
""" Closes camera
164-
"""
165-
166-
raise NotImplementedError
139+

dlclivegui/camera/tiscamera_windows.py

Lines changed: 40 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
"""
2-
"""
32
DeepLabCut 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()

dlclivegui/camera/tisgrabber_windows.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -807,7 +807,7 @@ def FilterGetParameter(self, frame_filter_handle, parameter_name):
807807
data = C.c_int()
808808

809809
err = TIS_GrabberDLL.FilterGetParameter(frame_filter_handle, parameter_name, C.byref(data))
810-
return err
810+
return data.value
811811

812812
def FilterSetParameter(self, frame_filter_handle, parameter_name, data):
813813
if type(data) is int:

dlclivegui/dlclivegui.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@
2424

2525
from dlclivegui import CameraPoseProcess
2626
from dlclivegui import processor
27-
from cameracontrol import camera
28-
from cameracontrol.tkutil import SettingsWindow
27+
from dlclivegui import camera
28+
from dlclivegui.tkutil import SettingsWindow
2929

3030

3131
class DLCLiveGUI(object):

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
name="deeplabcut-live-gui",
1616
version="0.0.b0",
1717
author="A. & M. Mathis Labs",
18-
author_email="alexander@deeplabcut.org",
18+
author_email="adim@deeplabcut.org",
1919
description="GUI to run real time deeplabcut experiments",
2020
long_description=long_description,
2121
long_description_content_type="text/markdown",

0 commit comments

Comments
 (0)