[pygtk] PyGTK + OpenCV
Joseph S. Alcântara
josephseraos at gmail.com
Sat Feb 25 03:26:21 WST 2012
Where do I have put gobject.idle_add?
See the program: http://paste.debian.net/157481/
*Joseph Soares Alcântara*
Engenharia da Computação - 8º semestre
Universidade Federal do Ceará - UFC
Sobral - Ceará
+--------------------------------------------------------------------------+
.| - °v°...A liberdade não pode ser comprada e sim |
.| -/(_)\..conquistada. Conquiste a sua também use |
.| - ^^ G N U / L I N U X |
+--------------------------------------------------------------------------+
2012/2/22 Timo <timomlists em gmail.com>
> Op 22-02-12 12:19, Joseph S. Alcântara schreef:
>
>> Hi, now I get access to FAQ PyGTK talking about threads. It seems a
>> little complicated, and I didn't get it to work yet.
>> Like there teaches, I put at the begin, before anything be called,
>> gtk.threads_init() (that my python says it's deprecated and suggest me to
>> use gtk.gdk.threads_init, as well as threads_enter/leave)
>>
>> So, I put gtk.main() between thrads_enter/leave and every part of code I
>> want to be a thread, I put into this code (enter/leave) but it continue
>> working the same. ie, it's now working.
>>
>> I'm did something like this, into a class:
>>
>> gtk.gdk.threads_enter
>> self.th <http://self.th> = Thread(target=self.camera.**runvideo)
>>
>> self.th.start()
>> gtk.gdk.threads_leave
>>
>> It's a class that calls a gtk.Window. After, in self.camera.runvideo, it
>> calls famous routine to show images from webcam
>>
>> I think it's also in the FAQ, but you shouldn't do any GUI stuff in a
> thread, and if you do so, call it with gobject.idle_add().
>
> Cheers,
> Timo
>
> *Joseph Soares Alcântara*
>>
>> Engenharia da Computação - 8º semestre
>> Universidade Federal do Ceará - UFC
>> Sobral - Ceará
>>
>> +-----------------------------**------------------------------**
>> ---------------+
>> .| - °v°...A liberdade não pode ser comprada e sim |
>> .| -/(_)\..conquistada. Conquiste a sua também use |
>> .| - ^^ G N U / L I N U X |
>> +-----------------------------**------------------------------**
>> ---------------+
>>
>>
>>
>> 2012/2/21 Joseph S. Alcântara <josephseraos em gmail.com <mailto:
>> josephseraos em gmail.com**>>
>>
>>
>> How do I show a IplImage in a gtk.Image?
>>
>> *Joseph Soares Alcântara*
>>
>> Engenharia da Computação - 8º semestre
>> Universidade Federal do Ceará - UFC
>> Sobral - Ceará
>>
>> +-----------------------------**------------------------------**
>> ---------------+
>> .| - °v°...A liberdade não pode ser comprada e sim |
>> .| -/(_)\..conquistada. Conquiste a sua também use |
>> .| - ^^ G N U / L I N U X |
>> +-----------------------------**------------------------------**
>> ---------------+
>>
>>
>>
>> 2012/2/21 Joseph S. Alcântara <josephseraos em gmail.com
>> <mailto:josephseraos em gmail.com**>>
>>
>>
>> I cannot access FAQ, I think it's not working now.
>> Don't you have any example how could I solve that?
>> Yes, I'd like to show image from cv.QueryFrame in a gtk.Image,
>> But I am new in this, I'm learning a little slow.
>> It's a project to the university. We have an Open Source Study
>> Group, and I have to create a program using python + opencv + gtk.
>>
>> Thank you
>>
>> *Joseph Soares Alcântara*
>>
>> Engenharia da Computação - 8º semestre
>> Universidade Federal do Ceará - UFC
>> Sobral - Ceará
>>
>> +-----------------------------**------------------------------**
>> ---------------+
>> .| - °v°...A liberdade não pode ser comprada e sim |
>> .| -/(_)\..conquistada. Conquiste a sua também use |
>> .| - ^^ G N U / L I N U X
>> |
>> +-----------------------------**------------------------------**
>> ---------------+
>>
>>
>>
>> 2012/2/21 John Stowers <john.stowers.lists em gmail.com
>> <mailto:john.stowers.lists@**gmail.com<john.stowers.lists em gmail.com>
>> >>
>>
>>
>> IIRC opecv starts a mainloop when create window is called.
>>
>> In general, don't use threads unless you have read the FAQ and
>> understand what you are doing.
>>
>> John
>>
>> 2012/2/21 Joseph S. Alcântara <josephseraos em gmail.com
>> <mailto:josephseraos em gmail.com**>>:
>>
>> > Even if I don't use, ie, if I comment the lines where
>> NamedWindow, ShowImage
>> > and WaitKey appear it freezes too.
>> >
>> > Joseph Soares Alcântara
>> > Engenharia da Computação - 8º semestre
>> > Universidade Federal do Ceará - UFC
>> > Sobral - Ceará
>> >
>> >
>> +-----------------------------**------------------------------
>> **---------------+
>> > .| - °v°...A liberdade não pode ser comprada e sim |
>> > .| -/(_)\..conquistada. Conquiste a sua também use |
>> > .| - ^^ G N U / L I N U X
>> |
>> >
>> +-----------------------------**------------------------------
>> **---------------+
>> >
>> >
>> >
>> > 2012/2/21 John Stowers <john.stowers.lists em gmail.com
>> <mailto:john.stowers.lists@**gmail.com<john.stowers.lists em gmail.com>
>> >>
>>
>> >>
>> >> GTK is not threadsafe.
>> >>
>> >> If opencv shows a gtk mainwindow in cv.ShowImage, and
>> that occurs in a
>> >> different thread to the one running gtk_main, then
>> unpredictable
>> >> crashes and odd behaviour will result.
>> >>
>> >> Please check the pygtk FAQ for how to use threading and
>> pygtk.
>> >>
>> >> I suggest displaying the image yourself in by getting
>> the data from
>> >> the IPL image and copying it into a GtkImage. Or be
>> much more careful
>> >> with which operations you do in which thread (i.e.
>> cv.ShowImage,
>> >> cv.WaitKey)
>> >>
>> >> John
>> >>
>> >> 2012/2/21 Joseph S. Alcântara <josephseraos em gmail.com
>> <mailto:josephseraos em gmail.com**>>:
>>
>> >> > Hi, Thank you for response to me.
>> >> >
>> >> > See, can I sand you my program to you see what I am
>> making? I've used
>> >> > Thread, but seems like is not working like I want.
>> >> >
>> >> > You must run from main.py
>> >> >
>> >> > Joseph Soares Alcântara
>> >> > Engenharia da Computação - 8º semestre
>> >> > Universidade Federal do Ceará - UFC
>> >> > Sobral - Ceará
>> >> >
>> >> >
>> >> >
>> +-----------------------------**------------------------------
>> **---------------+
>> >> > .| - °v°...A liberdade não pode ser comprada e sim |
>> >> > .| -/(_)\..conquistada. Conquiste a sua também use |
>> >> > .| - ^^ G N U / L I N U X
>> |
>> >> >
>> >> >
>> +-----------------------------**------------------------------
>> **---------------+
>> >> >
>> >> >
>> >> >
>> >> > 2012/2/19 Hart's Antler <bhartsho em yahoo.com
>> <mailto:bhartsho em yahoo.com>>
>>
>> >> >>
>> >> >> Hi Joseph,
>> >> >> I got GTK and OpenCV working together using threads.
>> This example
>> >> >> works
>> >> >> with CPython2, CPython3 and PyPy, see my blog post.
>> >> >> http://pyppet.blogspot.com/**2011/12/rpythonic-044.html<http://pyppet.blogspot.com/2011/12/rpythonic-044.html>
>> >> >>
>> >> >> -brett-
>> >> >>
>> >> >> ______________________________**__
>> >> >> From: Joseph S. Alcântara <josephseraos em gmail.com
>> <mailto:josephseraos em gmail.com**>>
>> >> >> To: pygtk em daa.com.au <mailto:pygtk em daa.com.au>
>>
>> >> >> Sent: Sunday, February 19, 2012 9:46 AM
>> >> >> Subject: [pygtk] PyGTK + OpenCV
>> >> >>
>> >> >> hi, I'm writing a application that uses pygtk and
>> opencv. and I had a
>> >> >> problem. When I run the program it shows a gui. So
>> far so good. But,
>> >> >> when I
>> >> >> click in a menuitem, it should call a functino that
>> runs the famous
>> >> >> routine
>> >> >> to show a video from webcam. But in this moment, the
>> app freezes. I
>> >> >> have
>> >> >> tried to use thread, but opencv gui runs just after
>> I call
>> >> >> gtk.main_quit().
>> >> >> What could solve my problem? Thanks.
>> >> >>
>> >> >> Estou escrevendo um programa em python, usando pygtk
>> e opencv. Quando
>> >> >> rodo
>> >> >> o programa, aparece uma janela e até aí, beleza. Mas
>> quando eu clico em
>> >> >> um
>> >> >> menuitem, ele deve chamar uma função que roda a
>> famosa rotina que exibe
>> >> >> um
>> >> >> vídeo a partir da webcam. No entanto, neste momento,
>> o programa trava.
>> >> >> Então, eu tentei usar Thread, mas a parte do opencv
>> só roda depois que
>> >> >> eu
>> >> >> fecho a janela, chamando gtk.main_quit(). O que
>> poderia ser? Obrigado
>> >> >> desde
>> >> >> já.
>> >> >>
>> >> >> Joseph Soares Alcântara
>> >> >> Engenharia da Computação - 8º semestre
>> >> >> Universidade Federal do Ceará - UFC
>> >> >> Sobral - Ceará
>> >> >>
>> >> >>
>> >> >>
>> >> >>
>> +-----------------------------**------------------------------
>> **---------------+
>> >> >> .| - °v°...A liberdade não pode ser comprada e sim |
>> >> >> .| -/(_)\..conquistada. Conquiste a sua também use |
>> >> >> .| - ^^ G N U / L I N U X
>> |
>> >> >>
>> >> >>
>> >> >>
>> +-----------------------------**------------------------------
>> **---------------+
>> >> >>
>> >> >>
>> >> >> ______________________________**_________________
>> >> >> pygtk mailing list pygtk em daa.com.au
>> <mailto:pygtk em daa.com.au>
>>
>> >> >> http://www.daa.com.au/mailman/**listinfo/pygtk<http://www.daa.com.au/mailman/listinfo/pygtk>
>> >> >> Read the PyGTK FAQ: http://faq.pygtk.org/
>> >> >>
>> >> >
>> >> >
>> >> > ______________________________**_________________
>> >> > pygtk mailing list pygtk em daa.com.au
>> <mailto:pygtk em daa.com.au>
>>
>> >> > http://www.daa.com.au/mailman/**listinfo/pygtk<http://www.daa.com.au/mailman/listinfo/pygtk>
>> >> > Read the PyGTK FAQ: http://faq.pygtk.org/
>> >
>> >
>>
>>
>>
>>
>>
>>
>> ______________________________**_________________
>> pygtk mailing list pygtk em daa.com.au
>> http://www.daa.com.au/mailman/**listinfo/pygtk<http://www.daa.com.au/mailman/listinfo/pygtk>
>> Read the PyGTK FAQ: http://faq.pygtk.org/
>>
>
> ______________________________**_________________
> pygtk mailing list pygtk em daa.com.au
> http://www.daa.com.au/mailman/**listinfo/pygtk<http://www.daa.com.au/mailman/listinfo/pygtk>
> Read the PyGTK FAQ: http://faq.pygtk.org/
>
-------------- Pr?xima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://www.daa.com.au/pipermail/pygtk/attachments/20120224/12138ddd/attachment-0001.html>
More information about the pygtk
mailing list