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不兼容虽然它与其他一些计算机视频输入包工作得很好
我正在尝试将 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不兼容虽然它与其他一些计算机视频输入包工作得很好