[pygtk] PyGTK + OpenCV
Petr Kubánek
petr at kubanek.net
Fri Mar 2 01:01:09 WST 2012
When calling GTK method. See sources in
http://rts-2.svn.sourceforge.net/viewvc/rts-2/trunk/pyrts2/widgets/
for details.
Petr Kubanek
Joseph S. Alcântara píše v Pá 24. 02. 2012 v 16:26 -0300:
> 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 at 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 at gmail.com
> <mailto:josephseraos at 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 at gmail.com
>
> <mailto:josephseraos at 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 at gmail.com
>
> <mailto:john.stowers.lists at 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 at gmail.com
>
> <mailto:josephseraos at 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 at gmail.com
>
> <mailto:john.stowers.lists at 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 at gmail.com
>
> <mailto:josephseraos at 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 at yahoo.com
>
> <mailto:bhartsho at 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
> >> >>
> >> >> -brett-
> >> >>
> >> >> ________________________________
> >> >> From: Joseph S. Alcântara
> <josephseraos at gmail.com
>
> <mailto:josephseraos at gmail.com>>
> >> >> To: pygtk at daa.com.au
> <mailto:pygtk at 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 at daa.com.au
>
> <mailto:pygtk at daa.com.au>
>
> >> >>
> http://www.daa.com.au/mailman/listinfo/pygtk
> >> >> Read the PyGTK FAQ:
> http://faq.pygtk.org/
> >> >>
> >> >
> >> >
> >> >
> _______________________________________________
> >> > pygtk mailing list pygtk at daa.com.au
>
> <mailto:pygtk at daa.com.au>
>
> >> >
> http://www.daa.com.au/mailman/listinfo/pygtk
> >> > Read the PyGTK FAQ:
> http://faq.pygtk.org/
> >
> >
>
>
>
>
>
>
> _______________________________________________
> pygtk mailing list pygtk at daa.com.au
> http://www.daa.com.au/mailman/listinfo/pygtk
> Read the PyGTK FAQ: http://faq.pygtk.org/
>
>
>
> _______________________________________________
> pygtk mailing list pygtk at daa.com.au
> http://www.daa.com.au/mailman/listinfo/pygtk
> Read the PyGTK FAQ: http://faq.pygtk.org/
>
>
> _______________________________________________
> pygtk mailing list pygtk at daa.com.au
> http://www.daa.com.au/mailman/listinfo/pygtk
> Read the PyGTK FAQ: http://faq.pygtk.org/
More information about the pygtk
mailing list