首页 > 解决方案 > 如何增加 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()

标签: pythonopencvtkinterraspberry-pipython-imaging-library

解决方案


推荐阅读