Spaces:
Runtime error
Runtime error
| class Processor: | |
| def __init__(self): | |
| self.attributes = [] | |
| def process_frame(self, frame, tracked_obj): | |
| """ | |
| Process tracked objects to extract interesting features. | |
| :param frame: OpenCV image. | |
| :param tracked_obj: List with the objects to be processed. | |
| """ | |
| raise NotImplementedError() | |
| def plot_features(self, image, features, plotter, show_attributes): | |
| """ | |
| Visualize objects detected in the input image. | |
| :param image: OpenCV image. | |
| :param features: List of object features detect after processing the frame. | |
| :param plotter: Plotter interface. | |
| :param show_attributes: Selected object attributes to be displayed. | |
| """ | |
| raise NotImplementedError() | |
| class EmptyProcessor(Processor): | |
| def __init__(self): | |
| super().__init__() | |
| def process_frame(self, frame, tracked_obj): | |
| return tracked_obj | |
| def plot_features(self, image, features, plotter, show_attributes): | |
| return image | |
| class ProcessorsGroup(Processor): | |
| def __init__(self): | |
| super().__init__() | |
| self.group = [] | |
| def process_frame(self, frame, tracked_obj): | |
| for elem in self.group: | |
| tracked_obj = elem.process_frame(frame, tracked_obj) | |
| return tracked_obj | |
| def plot_features(self, image, features, plotter, show_attributes): | |
| for elem in self.group: | |
| image = elem.plot_features(image, features, plotter, show_attributes) | |
| return image | |
| def add_processor(self, processor): | |
| self.group.append(processor) | |
| self.attributes += processor.attributes | |
| def get_number_of_processors(self): | |
| return len(self.group) | |