簡體   English   中英

AttributeError:模塊“cv2.cv2”沒有屬性“TrackerMOSSE_create”

[英]AttributeError: module 'cv2.cv2' has no attribute 'TrackerMOSSE_create'

根據Dan的建議,我嘗試編輯這篇文章Error occurred at setting up MOOSE tracker,我也不知道為什么會出現這個錯誤,因為我安裝了Opencv-contrib-python==4.5.1.48。但是,安裝后,錯誤仍然存在。 唯一的跟蹤器是MIL,但我意識到兩個跟蹤器的使用目的是不同的。 我也嘗試像 Spyke 的建議一樣編寫tracker = cv2.legacy.TrackerMOSSE_create()但沒有任何改變。 這是我的代碼:

import cv2

cap = cv2.VideoCapture(0)

tracker = cv2.TrackerMOSSE_create()
success, img = cap.read()

# select a bounding box ( ROI )
bbox = cv2.selectROI("Tracking", img, False)
tracker.init(img, bbox)


def drawBox(img, bbox):
    x, y, w, h = int(bbox[0]), int(bbox[1]), int(bbox[2]), int(bbox[3])
    cv2.rectangle(img, (x, y), (x + w, y + h), (255, 0, 255), 3, 1)
    cv2.putText(img, "Tracking", (75, 75), cv2.FONT_HERSHEY_SIMPLEX, 0.7, (0, 255, 0), 2)


while True:
    timer = cv2.getTickCount()
    success, img = cap.read()

    success, bbox = tracker.update(img)

    if success:
        drawBox(img, bbox)
    else:
        cv2.putText(img, "Loss", (75, 75), cv2.FONT_HERSHEY_SIMPLEX, 0.7, (0, 0, 255), 2)

    fps = cv2.getTickFrequency() / (cv2.getTickCount() - timer)
    cv2.putText(img, str(int(fps)), (75, 50), cv2.FONT_HERSHEY_SIMPLEX, 0.7, (0, 0, 255), 2)
    cv2.imshow("Tracking", img)

    if cv2.waitKey(1) & 0xff == ord('q'):
        break

實際上最新版本的 opencv 現在在舊版 class 下有“TrackerMOSSE_create” 所以,而不是這個

tracker = cv2.TrackerMOSSE_create()

利用:

tracker = cv2.legacy.TrackerMOSSE_create()

如@Spyke 所述, TrackerMOSSE確實位於舊版 class 之下。 但是,而不是:

tracker = cv2.legacy.TrackerMOSSE_create()

我能夠使用另一種語法在 OpenCV 4.5.1 中運行 MOSSE Tracker:

tracker cv2.legacy_TrackerMOSSE.create()

OpenCV 4.5.1起, TrackerMOSSE已移至舊版跟蹤器 API

請參見https://docs.opencv.org/4.5.1/d0/d20/classcv_1_1legacy_1_1TrackerMOSSE.ZFC35FDC70D5FC69D269883A822C75A

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM