Python OpenCV cv2.VideoCapture(0)与网络摄像头不兼容

Python OpenCV cv2.VideoCapture(0)与网络摄像头不兼容,python,opencv,raspberry-pi,Python,Opencv,Raspberry Pi,我正在尝试使用USB网络摄像头在一个树莓pi上进行一个计算机视觉项目,该项目输出移动物体的尺寸。我安装了openCV并尝试了我的python代码,它在我的电脑上运行得非常好,但是当我在我的raspberry pi B+中运行它时,输出出乎意料,所以我使用cv2.imshow(“视频输出”,帧)进行了视频输出,以查看发生了什么,并看到了一些奇怪的事情。视频闪烁着,有些部分是红色,有些部分是蓝色 虽然我的代码在pc上运行得很好,但可能会有所帮助,所以下面是我的代码: import argpars

我正在尝试使用USB网络摄像头在一个
树莓pi
上进行一个计算机视觉项目,该项目输出移动物体的尺寸。我安装了
openCV
并尝试了我的
python
代码,它在我的电脑上运行得非常好,但是当我在我的
raspberry pi B+
中运行它时,输出出乎意料,所以我使用
cv2.imshow(“视频输出”,帧)
进行了视频输出,以查看发生了什么,并看到了一些奇怪的事情。视频闪烁着,有些部分是红色,有些部分是蓝色


虽然我的代码在pc上运行得很好,但可能会有所帮助,所以下面是我的代码:

import argparse
import datetime
import imutils
import time
import cv2
import numpy as np

ap = argparse.ArgumentParser()
ap.add_argument("-v", "--video", help="path to video")
ap.add_argument("-a", "--min-area", type=int, default = 200, help="min area")
args=vars(ap.parse_args())

if args.get("video", None) is None:
    camera = cv2.VideoCapture(0)
    camera.set(cv2.cv.CV_CAP_PROP_FPS,2)
    camera.set(cv2.cv.CV_CAP_PROP_FRAME_WIDTH,640)
    camera.set(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT,480)
    time.sleep(2.5)
else:
    camera = cv2.VideoCapture(args["video"])

while True:
    (grabbed, frame) = camera.read()
    if not grabbed:
        break
    frame = imutils.resize(frame, width=500)
    cv2.imshow("testing",frame)
    key = cv2.waitKey(1) & 0xFF
    if key == ord("q"):
        break

camera.release()
cv2.destroyAllWindows()

原来问题出在视频源上。网络摄像头与OpenCV不兼容,尽管它与其他一些计算机视频输入软件包配合得很好

@kasra我认为它与代码无关。但我要补充一点