The _track_object method is directly responsible for keypoint matching, keypoint visualizations, and solving the PnP problem. Additionally, it calls other methods to deal with Kalman filtering, AR drawing, and masking the tracked object:
- To begin _track_object's implementation, we call our convert_to_gray helper function to convert the frame to grayscale:
def _track_object(self): self._gray_image = convert_to_gray( self._bgr_image, self._gray_image)
- Now, we use our cv2.ORB object to detect keypoints and compute descriptors in a masked region of the grayscale image:
if self._mask is None: self._mask = numpy.full_like(self._gray_image, 255) keypoints, descriptors = \ self._feature_detector.detectAndCompute( self._gray_image, ...