使用pygtk3将GUI窗口添加到python opencv2程序

时间:2014-02-21 09:37:40

标签: python opencv user-interface pygtk

我已经使用Python和Opencv2完成了一个程序。现在,我想在我的程序中添加一个GUI窗口。

我对PyGtk3有一些经验。所以,我修改了我的代码以采用PyGtk3。但是,我得到了错误。所以,我尝试了一个简单的程序来找出实际的错误。

我的测试代码是,

import pygtk
pygtk.require('2.0')
import gtk
import numpy as np
import cv2

builder = gtk.Builder()
builder.add_from_file("GUI.glade")
window = builder.get_object("window1")
window.set_title("Single Object Tracking")
window.connect("delete-event", gtk.main_quit)
window.show_all()    
img = cv2.imread('Birds.jpg')
cv2.imwrite('abcdefgh.png',img)
cv2.imshow('image',img)
cv2.waitKey(10000)
cv2.destroyAllWindows()
gtk.main()

实际上,程序没有显示任何编译时错误。但是在执行此程序后,当流程到达代码cv2.imshow('image',img)程序时会自动终止。

如果我发表评论cv2.imshow('image',img"),则只表示此程序正常运行。但是,我需要插入代码cv2.imshow('image',img)

你能帮我解决一下这个问题吗?

提前谢谢......

更新

我试过Tkinter。我能够显示图像但无法显示视频。我的测试代码是

import numpy as np
import cv2

import Tkinter
top = Tkinter.Tk()
top.mainloop()

cam = cv2.VideoCapture('dove1.mp4')
# Structuring element
es = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (9,4))

t_minus = cv2.cvtColor(cam.read()[1], cv2.COLOR_RGB2GRAY)
t = cv2.cvtColor(cam.read()[1], cv2.COLOR_RGB2GRAY)

i = 1 
while True:
    flag,frame = cam.read()
    rgb_image = frame
    if(flag==False):
        break
    print i
    i = i + 1
    cv2.imshow('RGB Image',frame);

实际上,我想为我的程序添加一个GUI窗口。我正在处理输入视频文件并显示其输出视频的4个级别。它完成了。 GUI是个问题。有人可以帮我解决我的问题吗?

0 个答案:

没有答案