我的FPB较低〜5,我在相同的情况下,在不同的Logitech c270和Logitech 9000摄像机上检查了此代码。
我完成了有关关闭右灯等的所有提示。
import urllib.request as urllib
import cv2
import numpy as np
import time
while True:
# Use urllib to get the image and convert into a cv2 usable format
cap = cv2.VideoCapture(0)
width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
hiegh = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
ret, frame = cap.read()
# put the image on screen
cv2.imshow('Webcam', frame)
if cv2.waitKey(1) & 0xFF == 27:
break
cap.release()
cv2.destroyAllWindows()
我应该如何提高FPS?
答案 0 :(得分:2)
# Use urllib to get the image and convert into a cv2 usable format
cap = cv2.VideoCapture(0)
width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
hiegh = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
将这些行放在while函数上方。
答案 1 :(得分:2)
您需要将此行向上移动,外部获取循环:
cap = cv2.VideoCapture(0)
它仅进行一次 初始化。
答案 2 :(得分:1)
尝试降低分辨率。您可以尝试640x480。
示例:
cap.set(CV_CAP_PROP_FRAME_WIDTH, 640)
cap.set(CV_CAP_PROP_FRAME_WIDTH, 480)
答案 3 :(得分:0)
我知道我来晚了,但是,如果有人面对这个问题...
检查您是否使用了正确的编解码器。就Logitech OrbiCam而言,我必须将其设置为MJPG:
对于C ++:
cv::VideoCapture camera;
camera.open(0);
auto codec = cv::VideoWriter::fourcc('M','J','P','G');
camera.set(cv::CAP_PROP_FOURCC, codec);
在Python中:
import cv2
camera = cv2.VideoCapture(0)
camera.set(cv2.CAP_PROP_FOURCC, cv2.VideoWriter.fourcc('m','j','p','g'))
对于Kotlin:
var capture: VideoCapture = VideoCapture()
camera.open(deviceId)
val mjpg = VideoWriter.fourcc('M', 'J', 'P', 'G')
capture.set(Videoio.CAP_PROP_FOURCC, mjpg.toDouble())
等...
...然后设置目标分辨率