opencv与python过滤颜色给出错误

时间:2017-08-29 18:32:53

标签: python opencv

我在下面的代码中尝试做的是使用python创建一个opencv程序来打开我的笔记本电脑摄像头并过滤相机以便它只显示我的衣服。但我甚至可以运行该程序,因为我遇到了一个似乎来自代码的第10行的错误。它绝对不是一个错误的错误,我仔细检查它。

代码示例

#color filtering
import cv2
import numpy as np

#use camera
cap = cv2.VideoCapture(1)

while True:
    _, frame = cap.read()
   `this line seem to be the source-->` hsv=cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)


    # hsv hue sat value
    # try to get the value of the color that you want
    lower_red = np.array([150,150,150])
    upper_red = np.array([180,255,255])

    mask = cv2.inRange(hsv, lower_red, upper_red)
    res = cv2.bitwise_and(frame,frame, mask = mask)

    cv2.imshow('frame',frame)
    cv2.imshow('mask',mask)
    cv2.imshow('result',res)

    k = cv2.waitKey(5) & 0xFF
    if k == 27:
        break

cv2.destroyAllWindows()

#release camera
cap.release()

错误

Traceback (most recent call last):
  File "D:/Program_Files/Python/legit8.py", line 10, in <module>
    hsv=cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
cv2.error: C:\projects\opencv-python\opencv\modules\imgproc\src\color.cpp:10705: error: (-215) (scn == 3 || scn == 4) && (depth == CV_8U || depth == CV_32F) in function cv::cvtColor

1 个答案:

答案 0 :(得分:3)

你的框架可能是None。这可能是因为VideoCapture(1)。如果您的网络摄像头是连接到计算机的唯一凸轮,请使用VideoCapture(0)