Я работаю над алгоритмами отслеживания в OpenCV, где алгоритмы отслеживания наследуют суперкласс Tracker . Я знаю, что OpenCV реализован на C ++, и OpenCV- Python использует связывание с реализацией C ++.
Без изменения кода C ++ я могу просто создать другой класс Python (a отличается от алгоритма трекера) и наследует ли класс трекер? Например, я могу просто сделать что-то вроде приведенного ниже кода?
import cv2
video_source = '/video/%04d.png'
class MyNewTracker(cv2.Tracker):
def test(self):
print("My test function")
if __name__ == '__main__':
video = cv2.VideoCapture(video_source)
bbox = (648, 584, 69, 200)
ok, frame = video.read()
tracker = MyNewTracker()
ok = tracker.init(frame, bbox)
Редактировать: Когда я на самом деле запускаю код выше, я не получаю никакой синтаксической ошибки или необъявленной функции или чего-то подобного. Однако я получаю старую " Ошибка сегментации (дамп ядра) " старой ошибки. Является ли это признаком того, что наследование работает, но я неправильно использую функции внутри суперкласса Tracker.
Спасибо!