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 = 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

*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 <[email protected]>

> 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 <[email protected]>
>
> 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 <[email protected]>
>>
>>> 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 <[email protected]>:
>>> > 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 <[email protected]>
>>> >>
>>> >> 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 <[email protected]>:
>>> >> > 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 <[email protected]>
>>> >> >>
>>> >> >> 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
>>> >> >>
>>> >> >> -brett-
>>> >> >>
>>> >> >> ________________________________
>>> >> >> From: Joseph S. Alcântara <[email protected]>
>>> >> >> To: [email protected]
>>> >> >> 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  [email protected]
>>> >> >> http://www.daa.com.au/mailman/listinfo/pygtk
>>> >> >> Read the PyGTK FAQ: http://faq.pygtk.org/
>>> >> >>
>>> >> >
>>> >> >
>>> >> > _______________________________________________
>>> >> > pygtk mailing list   [email protected]
>>> >> > http://www.daa.com.au/mailman/listinfo/pygtk
>>> >> > Read the PyGTK FAQ: http://faq.pygtk.org/
>>> >
>>> >
>>>
>>
>>
>
_______________________________________________
pygtk mailing list   [email protected]
http://www.daa.com.au/mailman/listinfo/pygtk
Read the PyGTK FAQ: http://faq.pygtk.org/

Reply via email to