Opencv - X Window System Error

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Shakra
User
Beiträge: 7
Registriert: Samstag 30. Oktober 2010, 00:00

Hallo Leute,
ich beschäftige mich zur Zeit mit Opencv. Mit C++ habe ich einige Funktionen auch getestet aber ich möchte auch eine Benutzeroberfläche gestalten. Deswegen möchte ich das ganze mit Python angehen.(nicht dass ich gut mit Python umgehen könnte, da bin ich auch ein neuling aber es ist iwie einfacher..) Und mit Python und Opencv bin ich etwas durcheinander gekommen..
Also erstmal bekomme ich einen "X Window System error" nach dem ich das geöffnete Bild schließe und die ganze Oberfläche verschwindet dann..

Code: Alles auswählen

# coding: utf-8
#! usr/bin/python
from Tkinter import *
from tkFileDialog import *
import cv2
import cv

class GUI():
	def __init__(self):
		#opencv.__init__(self)
		self.root = Tk()
		self.root.title("Bildverarbeitung mit OpenCv")
		self.menuleiste()
		self.root.mainloop()		
 
	def menuleiste(self): 
		self.menuleiste = Menu(self.root) 
		self.root.config(menu=self.menuleiste) 
		
		self.datei = Menu(self.menuleiste) 
		self.werkzeug = Menu(self.menuleiste)
		self.info = Menu(self.menuleiste)
		
		self.add_cascade() 
	
	def add_cascade(self):
		self.menuleiste.add_cascade(label="Datei", menu=self.datei)
		self.menuleiste.add_cascade(label="Werkzeuge", menu=self.werkzeug)
		self.menuleiste.add_cascade(label="Info", menu=self.info)
		
		self.add_eintrag()
		
	def add_eintrag(self):
		self.datei.add_command(label="Öffnen", command=self.laden)
	
	def laden(self):
		a = askopenfilename()
		self.img = cv.LoadImage(a)
		cv2.namedWindow("OpenCv", 1)
		cv.ShowImage("OpenCv",self.img)
		#cv2.imshow("OpenCv", self.img)
		cv2.waitKey(0)
		cv2.destroyWindow("OpenCv")

a = GUI()
Error:
The program 'OpenCv' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadWindow (invalid Window parameter)'.
(Details: serial 1985 error_code 3 request_code 40 minor_code 0)
(Note to programmers: normally, X errors are reported asynchronously;
that is, you will receive the error a while after causing it.
To debug your program, run it with the --sync command line
option to change this behavior. You can then get a meaningful
backtrace from your debugger if you break on the gdk_x_error() function.)
Antworten