pythonopencvattributeerrortracker

Tracker Algorithms in Open cv install


Hello ı tried to use tracker algorithms but ı couldn't use also ı tried to install API's

pip install opencv-contrib-python

and here is my code


import cv2
def ask_for_tracker():
   print("Welcome! What Tracker API would you like to use?")
   print("Enter 0 for BOOSTING: ")
   print("Enter 1 for MIL: ")
   print("Enter 2 for KCF: ")
   print("Enter 3 for TLD: ")
   print("Enter 4 for MEDIANFLOW: ")
   choice = input("Please select your tracker: ")

   if choice == '0':
       tracker = cv2.TrackerBoosting_create()
   if choice == '1':
       tracker = cv2.TrackerMIL_create()
   if choice == '2':
       tracker = cv2.TrackerKCF_create()
   if choice == '3':
       tracker = cv2.TrackerTLD_create()
   if choice == '4':
       tracker = cv2.TrackerMedianFlow_create()

   return tracker
tracker = ask_for_tracker()

here is my error thanks for help

enter image description here


Solution

  • the opencv-contrib-python library has been updated. Here's how your code should look like according to the updated OpenCV documentation:

    import cv2
    def ask_for_tracker():
        print("Welcome! What Tracker API would you like to use?")
        print("Enter 0 for BOOSTING: ")
        print("Enter 1 for MIL: ")
        print("Enter 2 for KCF: ")
        print("Enter 3 for TLD: ")
        print("Enter 4 for MEDIANFLOW: ")
        choice = input("Please select your tracker: ")
    
        if choice == '0':
            tracker = cv2.legacy.TrackerBoosting_create()
        if choice == '1':
            tracker = cv2.TrackerMIL_create()
        if choice == '2':
            tracker = cv2.TrackerKCF_create()
        if choice == '3':
            tracker = cv2.legacy.TrackerTLD_create()
        if choice == '4':
            tracker = cv2.legacy_TrackerMedianFlow()
        return tracker
    
    tracker = ask_for_tracker()
    

    I tested this code for every choice with the latest opencv-contrib-python version: 4.8.0.76. Just do pip install -U opencv-contrib-python

    Here's the code I tested for every tracker:

    import cv2
    def ask_for_tracker(choice):
        print("Choice: ",choice)
        if choice == '0':
            tracker = cv2.legacy.TrackerBoosting_create()
        if choice == '1':
            tracker = cv2.TrackerMIL_create()
        if choice == '2':
            tracker = cv2.TrackerKCF_create()
        if choice == '3':
            tracker = cv2.legacy.TrackerTLD_create()
        if choice == '4':
            tracker = cv2.legacy_TrackerMedianFlow()
        return tracker
    for i in range(5):
        tracker = ask_for_tracker(str(i))
        print(tracker)
    

    Output:

    Choice:  0
    < cv2.legacy.TrackerBoosting 0x7f3eb2ee2f10>
    Choice:  1
    < cv2.TrackerMIL 0x7f3eb2ee2e70>
    Choice:  2
    < cv2.TrackerKCF 0x7f3eb2ee2f10>
    Choice:  3
    < cv2.legacy.TrackerTLD 0x7f3eb2ee2e70>
    Choice:  4
    < cv2.legacy.TrackerMedianFlow 0x7f3eb2ee2f10>
    

    Hope it helps!