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() 
相关问题