mirror of
https://github.com/EyeTrackVR/EyeTrackVR.git
synced 2025-11-04 14:39:42 +08:00
fix none type crashes
This commit is contained in:
parent
d7b0136dff
commit
96372a7aa7
@ -12,6 +12,8 @@ class EyeId(IntEnum):
|
|||||||
|
|
||||||
class cal():
|
class cal():
|
||||||
def cal_osc(self, cx, cy):
|
def cal_osc(self, cx, cy):
|
||||||
|
if cx == None or cy == None:
|
||||||
|
return 0, 0
|
||||||
if cx == 0:
|
if cx == 0:
|
||||||
cx = 1
|
cx = 1
|
||||||
if cy == 0:
|
if cy == 0:
|
||||||
@ -62,63 +64,66 @@ class cal():
|
|||||||
out_y = 0.5
|
out_y = 0.5
|
||||||
|
|
||||||
|
|
||||||
|
if self.config.calib_XMAX != None and self.config.calib_XOFF != None:
|
||||||
|
calib_diff_x_MAX = self.config.calib_XMAX - self.config.calib_XOFF
|
||||||
|
if calib_diff_x_MAX == 0:
|
||||||
|
calib_diff_x_MAX = 1
|
||||||
|
|
||||||
calib_diff_x_MAX = self.config.calib_XMAX - self.config.calib_XOFF
|
calib_diff_x_MIN = self.config.calib_XMIN - self.config.calib_XOFF
|
||||||
if calib_diff_x_MAX == 0:
|
if calib_diff_x_MIN == 0:
|
||||||
calib_diff_x_MAX = 1
|
calib_diff_x_MIN = 1
|
||||||
|
|
||||||
calib_diff_x_MIN = self.config.calib_XMIN - self.config.calib_XOFF
|
calib_diff_y_MAX = self.config.calib_YMAX - self.config.calib_YOFF
|
||||||
if calib_diff_x_MIN == 0:
|
if calib_diff_y_MAX == 0:
|
||||||
calib_diff_x_MIN = 1
|
calib_diff_y_MAX = 1
|
||||||
|
|
||||||
calib_diff_y_MAX = self.config.calib_YMAX - self.config.calib_YOFF
|
calib_diff_y_MIN = self.config.calib_YMIN - self.config.calib_YOFF
|
||||||
if calib_diff_y_MAX == 0:
|
if calib_diff_y_MIN == 0:
|
||||||
calib_diff_y_MAX = 1
|
calib_diff_y_MIN = 1
|
||||||
|
|
||||||
calib_diff_y_MIN = self.config.calib_YMIN - self.config.calib_YOFF
|
xl = float(
|
||||||
if calib_diff_y_MIN == 0:
|
(cx - self.config.calib_XOFF) / calib_diff_x_MAX
|
||||||
calib_diff_y_MIN = 1
|
)
|
||||||
|
xr = float(
|
||||||
|
(cx - self.config.calib_XOFF) / calib_diff_x_MIN
|
||||||
|
)
|
||||||
|
yu = float(
|
||||||
|
(cy - self.config.calib_YOFF) / calib_diff_y_MIN
|
||||||
|
)
|
||||||
|
yd = float(
|
||||||
|
(cy - self.config.calib_YOFF) / calib_diff_y_MAX
|
||||||
|
)
|
||||||
|
|
||||||
xl = float(
|
if self.settings.gui_flip_y_axis: # check config on flipped values settings and apply accordingly
|
||||||
(cx - self.config.calib_XOFF) / calib_diff_x_MAX
|
if yd >= 0:
|
||||||
)
|
out_y = max(0.0, min(1.0, yd))
|
||||||
xr = float(
|
if yu > 0:
|
||||||
(cx - self.config.calib_XOFF) / calib_diff_x_MIN
|
out_y = -abs(max(0.0, min(1.0, yu)))
|
||||||
)
|
else:
|
||||||
yu = float(
|
if yd >= 0:
|
||||||
(cy - self.config.calib_YOFF) / calib_diff_y_MIN
|
out_y = -abs(max(0.0, min(1.0, yd)))
|
||||||
)
|
if yu > 0:
|
||||||
yd = float(
|
out_y = max(0.0, min(1.0, yu))
|
||||||
(cy - self.config.calib_YOFF) / calib_diff_y_MAX
|
|
||||||
)
|
|
||||||
|
|
||||||
if self.settings.gui_flip_y_axis: # check config on flipped values settings and apply accordingly
|
if flipx:
|
||||||
if yd >= 0:
|
if xr >= 0:
|
||||||
out_y = max(0.0, min(1.0, yd))
|
out_x = -abs(max(0.0, min(1.0, xr)))
|
||||||
if yu > 0:
|
if xl > 0:
|
||||||
out_y = -abs(max(0.0, min(1.0, yu)))
|
out_x = max(0.0, min(1.0, xl))
|
||||||
|
else:
|
||||||
|
if xr >= 0:
|
||||||
|
out_x = max(0.0, min(1.0, xr))
|
||||||
|
if xl > 0:
|
||||||
|
out_x = -abs(max(0.0, min(1.0, xl)))
|
||||||
|
|
||||||
|
try:
|
||||||
|
noisy_point = np.array([float(out_x), float(out_y)]) # fliter our values with a One Euro Filter
|
||||||
|
point_hat = self.one_euro_filter(noisy_point)
|
||||||
|
out_x = point_hat[0]
|
||||||
|
out_y = point_hat[1]
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
return out_x, out_y
|
||||||
else:
|
else:
|
||||||
if yd >= 0:
|
print("[INFO] Please Calibrate Eyes")
|
||||||
out_y = -abs(max(0.0, min(1.0, yd)))
|
return 0, 0
|
||||||
if yu > 0:
|
|
||||||
out_y = max(0.0, min(1.0, yu))
|
|
||||||
|
|
||||||
if flipx:
|
|
||||||
if xr >= 0:
|
|
||||||
out_x = -abs(max(0.0, min(1.0, xr)))
|
|
||||||
if xl > 0:
|
|
||||||
out_x = max(0.0, min(1.0, xl))
|
|
||||||
else:
|
|
||||||
if xr >= 0:
|
|
||||||
out_x = max(0.0, min(1.0, xr))
|
|
||||||
if xl > 0:
|
|
||||||
out_x = -abs(max(0.0, min(1.0, xl)))
|
|
||||||
|
|
||||||
try:
|
|
||||||
noisy_point = np.array([float(out_x), float(out_y)]) # fliter our values with a One Euro Filter
|
|
||||||
point_hat = self.one_euro_filter(noisy_point)
|
|
||||||
out_x = point_hat[0]
|
|
||||||
out_y = point_hat[1]
|
|
||||||
except:
|
|
||||||
pass
|
|
||||||
return out_x, out_y
|
|
||||||
Loading…
Reference in New Issue
Block a user