OpenCV追踪器算法使用报错求助:已安装opencv-contrib-python
解决OpenCV追踪器API找不到的问题
问题原因
你的报错是因为OpenCV 4.5及以上版本将旧版追踪器(BOOSTING、MIL、KCF、TLD、MEDIANFLOW)迁移到了cv2.legacy子模块中,直接通过cv2.TrackerXXX_create()调用会触发属性不存在的错误。
修复方案
修改代码,从cv2.legacy模块调用追踪器创建方法,同时优化条件判断逻辑并增加无效输入处理:
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() elif choice == '1': tracker = cv2.legacy.TrackerMIL_create() elif choice == '2': tracker = cv2.legacy.TrackerKCF_create() elif choice == '3': tracker = cv2.legacy.TrackerTLD_create() elif choice == '4': tracker = cv2.legacy.TrackerMedianFlow_create() else: print("Invalid choice, defaulting to MIL tracker") tracker = cv2.legacy.TrackerMIL_create() return tracker tracker = ask_for_tracker()
额外验证步骤
- 先确认你的OpenCV版本:
import cv2 print(cv2.__version__) - 若版本低于4.5但仍报错,重新安装匹配版本的opencv-contrib-python:
pip uninstall opencv-python opencv-contrib-python pip install opencv-python==4.4.0.46 opencv-contrib-python==4.4.0.46
内容的提问来源于stack exchange,提问作者Oğuz Berk Akdeniz
相关产品推荐
相关产品推荐

