近期在使用 opencv-python 进行目标跟踪时,发现会报错 Module 'cv2.cv2' has no attribute 'Tracker_create'
,该方法调用代码如下:
if tracker_type == 'BOOSTING':
tracker = cv2.TrackerBoosting_create()
if tracker_type == 'MIL':
tracker = cv2.TrackerMIL_create()
if tracker_type == 'KCF':
tracker = cv2.TrackerKCF_create()
if tracker_type == 'TLD':
tracker = cv2.TrackerTLD_create()
if tracker_type == 'MEDIANFLOW':
tracker = cv2.TrackerMedianFlow_create()
if tracker_type == 'GOTURN':
tracker = cv2.TrackerGOTURN_create()
if tracker_type == 'MOSSE':
tracker = cv2.TrackerMOSSE_create()
if tracker_type == "CSRT":
tracker = cv2.TrackerCSRT_create()
该错误的原因在于4.0以上版本的 opencv-python 库已移除目标跟踪相关代码,需要安装opencv-python-contrib 库,解决方案如下。
方案一
安装 opencv-python 库后再安装相同版本的 opencv-python-contrib 库,调用跟踪方法时可使用如下方式:
方案二
根据官方仓库下Issues中的说法,卸载 opencv-python 和 opencv-python-contrib 库(如有)后重启,仅安装 opencv-python-contrib 库。调用跟踪方法方式如下:
注意事项
- 如果用VS code的话,跟踪器不会显示在代码联想里。想要使用代码补全建议用 PyCharm,方法见 pycharm无法显示cv2成员函数解决方法。
- 前述的跟踪器不少在较高版本的 opencv 中都被舍弃了,具体哪些跟踪能用需参照官方文档。