AttributeError:“module”对象没有属性“cv”

2024-04-23 22:55:04 发布

您现在位置:Python中文网/ 问答频道 /正文

在尝试进行BGR到二进制阈值转换时,出现以下错误。

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()

我该怎么解决?


Tags: toimg错误二进制阈值cv2cvcap
1条回答
网友
1楼 · 发布于 2024-04-23 22:55:04

我一直面临着同样的问题。我认为我们正在遵循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()

相关问题 更多 >