2017-03-02 363 views
0

我已經找遍了,找不到這個問題的答案,所以我打算繼續問。我想弄清楚Python的opencv,我陷入了困境。每次運行此代碼時,它都會告訴我沒有名爲「CV_CHAIN_APPROX_SIMPLE」的屬性。然後我嘗試使用每個CV_CHAIN_APPROX並且沒有任何工作。我甚至去了我的IDLE,它也不知道它是什麼,所以我卡住了。 我想製作一個程序,可以找到移動目標的中心座標。將使用findContours是正確的方向? 對不起!我是新來的stackoverflow,所以我不確定我可以問這些問題! 非常感謝!AttributeError:module'cv2'has no atrribute'CV_CHAIN_APPROX_SIMPLE'


import cv2 
import numpy as np 

cap = cv2.VideoCapture(0) 
fgbg = cv2.createBackgroundSubtractorMOG2() 

while True: 
    _, frame = cap.read() 
    fgmask = fgbg.apply(frame) 
    filtered = cv2.medianBlur(fgmask, 15) 
    (a, b, c) = cv2.findContours(filtered, cv2.RETR_EXTERNAL, cv2.CV_CHAIN_APPROX_SIMPLE) 

    cv2.imshow('cont', b) 
    cv2.imshow('fg', fgmask) 
    cv2.waitKey(1) 

回答

0

在版本「2.4.9」我可以清楚地看到cv2.CHAIN_APPROX_NONE(和其他人也是如此),你確定你沒有忘記添加cv2.在它面前就像你在你的例子一樣。如果不是,請通過執行​​添加版本。

+0

是的,對不起。我的代碼中確實有這個。我只是很快記下了這一點。我知道它應該在那裏,這就是爲什麼我很困惑。 –

+0

@ Dr.Snow什麼是簡歷版本?代碼適用於我,一旦我添加使用我的答案。您確定添加了'cv2.',然後從'CV_CHAIN_APPROX_SIMPLE'中刪除了'CV_',因爲它應該是'cv2.CHAIN_APPROX_SIMPLE'而不是'cv2.CV_CHAIN_APPROX_SIMPLE' – ljetibo

0

您正在使用opencv 3.0>基於createBackgroundSubtractorMOG2,所以你行需​​要像:

(a, b, c) = cv2.findContours(filtered, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) 

不要在每個OpenCV的功能的面前忘記cv2.