@@ -350,15 +350,15 @@ def coarse_detection(img_gray, params):
350350 return pupil_rect_coarse , outer_rect_coarse , max_response_coarse , mu_inner , mu_outer
351351
352352
353- def fine_detection (frame , pupil_rect_coarse ):
353+ def fine_detection (frame : MatLike , pupil_rect_coarse ):
354354 valid_ratio = 1.2
355355 boundary = (0 , 0 , frame .shape [1 ], frame .shape [0 ])
356356 valid_rect = intersect_rect (rect_scale (pupil_rect_coarse , valid_ratio ), boundary )
357357 img_pupil = frame [
358358 valid_rect [1 ] : valid_rect [1 ] + valid_rect [3 ],
359359 valid_rect [0 ] : valid_rect [0 ] + valid_rect [2 ],
360360 ]
361- img_pupil_blur = cv2 .GaussianBlur (img_pupil , (5 , 5 ), 0 , 0 )
361+ img_pupil_blur = cv2 .GaussianBlur (img_pupil , (5 , 5 ), sigmaX = 0 , sigmaY = 0 )
362362 edges_filter = detect_edges (img_pupil_blur )
363363 # fit ellipse to edges
364364 contours , hierarchy = cv2 .findContours (edges_filter , cv2 .RETR_EXTERNAL , cv2 .CHAIN_APPROX_NONE )
@@ -399,12 +399,14 @@ def fine_detection(frame, pupil_rect_coarse):
399399 return pupil_rect_coarse , center
400400
401401
402- def detect_edges (img_pupil_blur ):
402+ def detect_edges (img_pupil_blur : MatLike ):
403403 edges = cv2 .Canny (img_pupil_blur , 64 , 128 )
404404
405405 # img_bw = np.zeros_like(img_pupil_blur)
406406 # img_bw[img_pupil_blur > 100] = 255
407- img_bw = cv2 .compare (img_pupil_blur , 100 , cv2 .CMP_GT )
407+
408+ # The usage is valid, the typing in opencv-python is wrong, see https://github.com/opencv/opencv-python/issues/1008
409+ img_bw = cv2 .compare (img_pupil_blur , 100 , cv2 .CMP_GT ) # type: ignore[call-overload]
408410 kernel = cv2 .getStructuringElement (cv2 .MORPH_ELLIPSE , (5 , 5 ))
409411 img_bw = cv2 .dilate (img_bw , kernel )
410412
0 commit comments