python - 如何增加 OpenCV、tkinter 和枕头的 FPS
问题描述
我正在尝试在tkinter
带有树莓派 (3b+) 和 RPI 摄像头模块 (v2) 的窗口中显示我的摄像头的摄像头供稿。
当我保持默认设置(在 imutils lib 中设置)时,一切正常。但是当我将相机分辨率更改为我的显示器尺寸(1280x800)时,帧率会显着下降。
是否可以以 30+ fps 显示完整的相机分辨率?还是保持原始分辨率但拉伸显示的图像tkinter
?
我对使用 RPI 和 OpenCV 进行开发相当陌生,所以我希望 FPS 可以用代码修复。
我的代码如下:
from tkinter import Tk, Frame, Label
from PIL import Image, ImageTk
import imutils
import cv2
from imutils.video.pivideostream import PiVideoStream
import time
window = Tk()
window.attributes('-fullscreen', True)
cameraLabel = Label(window)
cameraLabel.pack()
vs = PiVideoStream(resolution=(1280, 800)).start()
time.sleep(2.0)
def show_pi_video():
while True:
frame = vs.read()
frame = imutils.resize(frame)
cv2image = cv2.cvtColor(frame, cv2.COLOR_BGR2RGBA)
img = Image.fromarray(cv2image)
imgtk = ImageTk.PhotoImage(image=img)
cameraLabel.config(image=imgtk)
window.update()
cv2.destroyAllWindows()
vs.stop()
show_pi_video()
window.mainloop()
解决方案
推荐阅读
- argo-workflows - 如何从 API 请求触发 argo 工作流?
- graphql - Apollo 服务器超时问题
- c - klish/clish:使用内部 VAR 设置启动超时标签
- mongoexport - mongoexport 排序超出内存 csv
- sql - pgsql:过滤列以获取最新值
- docker - 在 amd64/python docker 镜像中安装 XAMPP 服务器
- windows - Windows:无法打开嵌套文件夹中创建的文件(使用 python 脚本)
- tensorflow - ValueError:形状 (None, None) 和 (None, 28, 28, 12) 不兼容
- reactjs - 在电子应用程序中使用 contextBridge/preload 时如何更新反应状态
- linux - 当我尝试运行 sudo 命令时,为什么 Ubuntu 会出现以下错误?