我还在学习Python-3代码。
我的目标是拍摄Pi相机“预览”或image.jpg,并不断更新Tkinter GUI框架上的图片。因此,在您提交保存来自Telescope的jpg之前,您可以看到图像的样子。
下面的代码找不到与'image.jpg‘位于同一文件夹位置的简单文件。同样的问题是,这将结束一个静态的旧图像。有没有办法让这部分代码在循环中运行?
Pi相机本身可以拍摄一张新图像,并在/home/pi处创建一个jpg文件。主程序也位于/home/pi。每次我运行程序时,它都会在Try下打印出"Image not found“。
from Tkinter import *
import picamera
root = Tk() #makes the window
camera = picamera.PiCamera()
root.wm_title("Camera GUI Program") #Makes the title that will appear in the top left
root.config(background = "#FFFFFF") #Sets background color to white
def redCircle():
circleCanvas.create_oval(20,20,80,80,width = 0, fill='red')
colorLog.insert(0.0, "Red\n")
def yelCircle():
circleCanvas.create_oval(20, 20, 80, 80, width=0, fill='green')
colorLog.insert(0.0, "Green\n")
#Left Frame and its contents
leftFrame = Frame(root, width=200, height = 600)
leftFrame.grid(row=0, column=0, padx=10, pady=2)
Label(leftFrame, text="Instructions:").grid(row=0, column=0, padx=10, pady=2)
Instruct = Label(leftFrame, text="1\n2\n2\n3\n4\n5\n6\n7\n8\n9\n")
Instruct.grid(row=1, column=0, padx=10, pady=2)
try:
camera.capture('image.jpg')
imageEx = PhotoImage(file = 'image.jpg')
Label(leftFrame, image=imageEx).grid(row=2, column=0, padx=10, pady=2)
except:
print("Image not found")
#Right Frame and its contents
rightFrame = Frame(root, width=200, height = 600)
rightFrame.grid(row=0, column=1, padx=10, pady=2)
circleCanvas = Canvas(rightFrame, width=100, height=100, bg='white')
circleCanvas.grid(row=0, column=0, padx=10, pady=2)
btnFrame = Frame(rightFrame, width=200, height = 200)
btnFrame.grid(row=1, column=0, padx=10, pady=2)
colorLog = Text(rightFrame, width = 30, height = 10, takefocus=0)
colorLog.grid(row=2, column=0, padx=10, pady=2)
redBtn = Button(btnFrame, text="Red", command=redCircle)
redBtn.grid(row=0, column=0, padx=10, pady=2)
yellowBtn = Button(btnFrame, text="Yellow", command=yelCircle)
yellowBtn.grid(row=0, column=1, padx=10, pady=2)
greenBtn = Button(btnFrame, text="Green", command=grnCircle)
greenBtn.grid(row=0, column=2, padx=10, pady=2)
root.mainloop() #start monitoring and updating the GUI. Nothing below here runs.发布于 2018-01-07 06:39:44
是否确定因为找不到该文件而引发错误?在try下有3个可能触发异常的语句。您需要找出是哪一个导致了错误。对于路径,请尝试使用完整路径。
至于循环。通常,创建一个函数,然后使用after命令在事件循环上重复调度它自己。
pwd = os.getcwd()
imageEx = PhotoImage(file=pwd + '/image.jpg')
label_image = Label(leftframe, image=imageEx)
label_image.grid(row=2, column=0, padx=10, pady=2)
label_image.image = imageEx
def picapture():
global label_image, root, pwd
try:
camera.capture('image.jpg')
imageEx = PhotoImage(file=pwd + '/image.jpg')
# Only update the image displayed by the label.
label_image.image = imageEx
# Schedule picature function to run every 1000 milliseconds
root.after(1000, picapture)
except:
print("Image not found")
...
picapture()https://stackoverflow.com/questions/48132024
复制相似问题