【问题标题】:Pi camera preview with GUI - Raspberry Pi带有 GUI 的 Pi 相机预览 - Raspberry Pi
【发布时间】:2014-09-01 16:25:55
【问题描述】:

我是“Python 世界”的新手,我正在(尝试)为我的孩子们制作一个照相亭。 我买了一个 picamera 并为它写了一个 python 脚本。

python 脚本很简单(如 picam 的示例): 打开picamera,显示预览窗口,休眠5秒拍照。

嗯……到现在为止,没什么大不了的……

但是当我尝试将预览窗口放在 tkinter 窗口的前面时,它不起作用! 我知道不可能将 picamera 预览图像放到 tkinter 框架中,但我们可以使用预览窗口来伪造它。 但是每次我运行程序时,相机都会显示 5 秒,然后拍照,然后 tkinter 会构建窗口。

我正在尝试子进程但没有任何改变,这是代码(在相机文件中):

代码如下: cam.py:

import picamera
from time import sleep


with picamera.PiCamera() as camera:
        camera.preview_fullscreen=False
        camera.preview_window=(620, 320, 640, 480)

        camera.resolution=(640,480)
        camera.start_preview()
        camera.sharpness = 10
        camera.contrast = 30
        camera.vflip=False
        camera.hflip=False
        camera.exposure_mode = 'auto'

        sleep(10)
        #camera.stop_preview()
        #camera.close()

gui.py:

from Tkinter import *
import RPi.GPIO as GPIO
import Image
from PIL import Image, ImageTk
from subprocess import Popen, PIPE

class Tela(object):
        def __init__(self,master, **kwargs):
                self.master=master
                pad=3
                self.geom='200x200+0+0'
                master.geometry("{0}x{1}+0+0".format(master.winfo_screenwidth()-pad,
master.winfo_screenheight()-pad))




        def toggle_geom(self, event):
                geom=self.master.winfo_geometry()
                print(geom,self._geom)
                self.master.geometry(self._geom)
                self._geom=geom

win = Tk()
win.title("test")
app=Tela(win)
frame = Frame(win)


frame.pack()

proc=Popen(["python","cam.py"],stdout=PIPE)
output=proc.communicate()[0]
print output


win.mainloop()

【问题讨论】:

    标签: python user-interface python-3.x camera subprocess


    【解决方案1】:

    丹尼尔!问题出在最后一行 gui.py 之前的那一行,因为当您使用方法communicate() 时,它会等待进程终止,因此预览正在运行或 gui 正在运行。

    【讨论】:

      猜你喜欢
      • 2019-09-02
      • 2021-03-31
      • 2015-04-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多