簡體   English   中英

具有GUI的Pi攝像機預覽-Raspberry Pi

[英]Pi camera preview with GUI - Raspberry Pi

我是“ 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()

牛! 問題出在最后一行gui.py的行中,因為當您使用方法communication()時,它會等待進程終止,因此預覽正在運行或gui正在運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM