2016-08-13 181 views
0

我在嘗試執行BGR到二進制閾值轉換時出現以下錯誤。AttributeError:'模塊'對象沒有屬性'cv'

imgthreshhold = cv2.inRange(img, cv2.cv.Scalar(3,3,125), cv2.cv.Scalar(40,40,255)) AttributeError: 'module' object has no attribute 'cv'

以下是完整的程序。

import cv2 

cap = cv2.VideoCapture(0) 
#help(cv2) 
while cap.isOpened(): 
    #BGR image feed from camera 
    ret, img = cap.read() 
    cv2.imshow('output', img) 
    #BGR to grayscale 
    img2 = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 
    cv2.imshow('grayscale', img2) 
    #BGR to binary(RED) thershholded 
    imgthreshhold = cv2.inRange(img, cv2.cv.Scalar(3,3,125), cv2.cv.Scalar(40,40,255)) 
    cv2.imshow('threshholded', imgthreshhold) 

    k = cv2.waitKey(10) 
    if k==27: 
     break 

cap.release() 
cv2.destroyAllWindows() 

我該如何解決這個問題?

+1

是不是cv2.Scalar而非cv2.cv.Scalar? –

+0

我在教程中沒有,據說它必須返回到opencv版本1 – SaikiHanee

+0

您使用的是什麼版本的OpenCV? – Tes3awy

回答

0

我一直面臨同樣的問題。我認爲我們正在遵循OpenCV的相同教程。我搞砸了一點功能,並發現只提供值工作正常。

因此,這是你的代碼應該如何看起來像:

import cv2 

cap = cv2.VideoCapture(0) 
#help(cv2) 
while cap.isOpened(): 
    #BGR image feed from camera 
    ret, img = cap.read() 
    cv2.imshow('output', img) 
    #BGR to grayscale 
    img2 = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 
    cv2.imshow('grayscale', img2) 
    #BGR to binary(RED) thershholded 
    imgthreshhold = cv2.inRange(img, (3,3,125), (40,40,255)) 
    cv2.imshow('threshholded', imgthreshhold) 

    k = cv2.waitKey(10) 
    if k==27: 
     break 

cap.release() 
cv2.destroyAllWindows() 
相關問題