temporary fix

This commit is contained in:
PallasNeko 2023-03-18 23:39:26 +09:00
parent 8d0e9eb45f
commit 33ee1fc31d
2 changed files with 10 additions and 4 deletions

View File

@ -310,8 +310,9 @@ class EyeProcessor:
self.current_algorithm = InformationOrigin.HSF
def RANSAC3DM(self):
current_image_gray_copy = self.current_image_gray.copy() # Duplicate before overwriting in RANSAC3D.
self.rawx, self.rawy, self.thresh = RANSAC3D(self)
self.eyeopen = self.ibo.intense(self.rawx, self.rawy, self.current_image_gray)
self.eyeopen = self.ibo.intense(self.rawx, self.rawy, current_image_gray_copy)
out_x, out_y = cal_osc(self, self.rawx, self.rawy)
self.current_algorithm = InformationOrigin.RANSAC

View File

@ -84,6 +84,7 @@ class IntensityBasedOpeness:
# self.img_roi = self.now_roi == {"rotation": 0, "x": 0, "y": 0}
self.img_roi = np.zeros(3, dtype=np.int32)
self.now_roi = np.zeros(3, dtype=np.int32)
self.prev_val = 0.5
def check(self, frameshape):
# 0 in data is used as the initial value.
@ -143,14 +144,17 @@ class IntensityBasedOpeness:
self.now_roi[:] = [v for v in roiinfo.values()]
def intense(self, x, y, frame):
# x,y = 0~(frame.shape[1 or 0]-1), frame = 1-channel frame cropped by ROI
self.check(frame.shape)
int_x, int_y = int(x), int(y)
upper_x = min(int_x + 25, frame.shape[1]) #TODO make this a setting
if int_x < 0 or int_y < 0:
return self.prev_val
upper_x = min(int_x + 25, frame.shape[1]-1) #TODO make this a setting
lower_x = max(int_x - 25, 0)
upper_y = min(int_y + 25, frame.shape[0])
upper_y = min(int_y + 25, frame.shape[0]-1)
lower_y = max(int_y - 25, 0)
# frame_crop = frame[lower_y:upper_y, lower_x:upper_x]
# frame_crop = frame[lower_y:upper_y, lower_x:upper_x]
frame_crop = safe_crop(frame, lower_x, lower_y, upper_x, upper_y, 1)
# The same can be done with cv2.integral, but since there is only one area of the rectangle for which we want to know the total value, there is no advantage in terms of computational complexity.
intensity = frame_crop.sum() + 1
@ -228,4 +232,5 @@ class IntensityBasedOpeness:
if changed and ((time.time() - self.lct) > 4): # save every 4 seconds if something changed to save disk usage
self.save()
self.lct = time.time()
self.prev_val = eyeopen
return eyeopen