OpenCV cv2.VideoCapture(0) 与网络摄像头配合不佳

OpenCV cv2.VideoCapture(0) is not working well with webcam

我正在尝试将 USB 网络摄像头用于 raspberry pi 上的计算机视觉项目,该项目输出移动物体的尺寸。我安装了 openCV 并尝试了我的 python 代码,它在我的 PC 上运行完美,但是当我 运行 它在我的 raspberry pi B+ 中并且输出是意外的所以我拍了一个视频使用 cv2.imshow("video output", frame) 输出以查看发生了什么,并看到一些东西 st运行ge。视频闪烁,部分红色部分蓝色。


尽管我的代码在 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不兼容虽然它与其他一些计算机视频输入包工作得很好