【发布时间】:2020-05-06 08:03:31
【问题描述】:
我正在尝试将我的 OpenCV 程序与我的 Raspberry Pi PiCamera 接口。每次我使用 OpenCV 捕获视频时,它都会大幅降低 FPS。当我使用 PiCamera 的库捕捉视频时,一切都很好。
- 为什么会这样?
- 有办法解决吗?
这是我的代码:
import time
import RPi.GPIO as GPIO
from PCA9685 import PCA9685
import numpy as np
import cv2
try:
cap = cv2.VideoCapture(0)
cap.set(cv2.CAP_PROP_FPS, 90)
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 800)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 700)
while(True):
ret, frame = cap.read()
cv2.imshow('frame',frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# When everything is done, release the capture
except:
pwm.exit_PCA9685()
print ("\nProgram end")
exit()
cap.release()
cv2.destroyAllWindows()
这是我遇到的错误:
【问题讨论】:
-
您似乎没有设置视频的尺寸。
-
这解决了我的 FPS 问题...但我仍然在终端中收到错误消息。任何想法这意味着什么或可能导致它的原因是什么?还意识到实际运动与视频上投影的内容之间存在 0.5 秒的延迟
-
尝试将循环更改为仅
while True:而不使用cap.isOpened()。另外请更新您的代码以显示您实际运行的内容。 -
@MarkSetchell 我更新了我的代码。正如你所说,我也改变了循环。您的回答在一定程度上解决了我的 FPS 问题(通过给它尺寸)。我意识到设置 FPS >= 100 会引发异常。现在我主要关心的是初始错误消息的含义以及为什么会产生它?随意发布您的尺寸评论作为答案(这是一个可行的解决方案)。
标签: python python-3.x opencv cv2