我正在从相机捕捉图像,并将图像显示在Tkinter的画布上。 但是,出现了一个奇怪的现象,画布将闪烁下面的代码
def get_image_cam() :
global cam,cam_flag,cam_image, cam_imageTk, canvas_img
print '[THREAD CREATE]get image camera'
print cam_flag
while cam_flag :
image = cam.get_image()
pygame.image.save(image,'capture.bmp')
cam_image = Image.open('capture.bmp')
cam_imageTk = ImageTk.PhotoImage(cam_image)
canvas_img.create_image(0, 0, anchor = NW ,image = cam_imageTk)
print '[THREAD EXIT] get image camera'
thread.exit_thread()
为了解决这个问题,我做了很多努力。下面是一些代码 http://codingmess.blogspot.com/2008/07/showing-webcam-image-in-desktop-window_08.html, 这真的很有帮助
^{pr2}$正如帖子作者所说,他不知道为什么容器.obr=照片“有帮助。 我对我的代码也做了同样的处理。变化如下:
def get_image_cam() :
global cam,cam_flag,cam_image, cam_imageTk, canvas_img
print '[THREAD CREATE]get image camera'
print cam_flag
while cam_flag :
image = cam.get_image()
pygame.image.save(image,'capture.bmp')
cam_image = Image.open('capture.bmp')
cam_imageTk = ImageTk.PhotoImage(cam_image)
canvas_img.create_image(0, 0, anchor = NW ,image = cam_imageTk)
obr = cam_imageTk # variable 'obr' is not neccessary, you can change it to anything you want
print '[THREAD EXIT] get image camera'
thread.exit_thread()
有人能帮我解释一下吗?提前谢谢。在
PhotoImage
创建本地对象(在函数中),当您离开函数时,垃圾回收器会删除该对象(并且您会丢失图像,因此会闪烁)。在必须将其分配给现有全局变量或现有对象。在
相关问题 更多 >
编程相关推荐