def get_lane_type(self, img, color_img): right_lane = Lane() left_lane = Lane() # Detect color. left_lane.color, right_lane.color = detect_color(color_img) # Detect solid vs dotted and single vs double. left_lane, right_lane, left_centers, right_centers = detect_dotted( img, left_lane, right_lane) # Handle errors. Don't update lane information unless new lane has been seen for 5 frames. if left_lane != self.last_left: if self.new_count_left >= 5 or self.first_frame: self.last_left = left_lane self.new_count_left = 0 else: left_lane = self.last_left self.new_count_left += 1 else: self.new_count_left = 0 if right_lane != self.last_right: if self.new_count_right >= 5 or self.first_frame: self.last_right = right_lane self.new_count_right = 0 self.first_frame = False else: right_lane = self.last_right self.new_count_right += 1 else: self.new_count_right = 0 return left_lane, right_lane, left_centers, right_centers