[Insight-users] Re: on wrap_itk

Gaëtan Lehmann gaetan.lehmann at jouy.inra.fr
Tue Apr 17 15:34:09 EDT 2007


Le 15 avr. 07 à 11:02, anirudh vij a écrit :

> hi gaetan,
> i had to modify the
> import qt
> line in ../itkExtras/itkvtkExtras.py and /usr/lib/python/site- 
> packages/vtk/qt/QVTKRenderWindow to:
> import PyQt4.Qt as qt
> before i got the following error:
>
>
> In [5]: itk.show r
> ------> itk.show(r)
> ---------------------------------------------------------------------- 
> -----
> exceptions.TypeError                                 Traceback  
> (most recent call last)
>
> /home/hackman/<ipython console>
>
> /usr/local/lib/InsightToolkit/WrapITK/Python/itkExtras/__init__.py  
> in show(input, **kargs)
>     239   img = image(input)
>     240   if img.GetImageDimension() == 3 and "show3D" in dir(itk):
> --> 241           return itk.show3D(input, **kargs)
>     242   else :
>     243           # print "2D not supported yet, use the 3D viewer."
>
> /usr/local/lib/InsightToolkit/WrapITK/Python/itkExtras/ 
> itkvtkExtras.py in __init__(self, input, MinOpacity, MaxOpacity)
>      11     self.__app__ = qt.QApplication (['itkviewer'])
>      12     # create the widget
> ---> 13     self.__widget__ = QVTKRenderWindowInteractor()
>      14     self.__ren__ = vtk.vtkRenderer()
>      15     self.__widget__.GetRenderWindow().AddRenderer 
> (self.__ren__)
>
> /usr/lib/python2.4/site-packages/vtk/qt/ 
> QVTKRenderWindowInteractor.py in __init__(self, parent, name,  
> *args, **kw)
>     136         # You cannot pass kw anymore, you'll a TypeError:  
> keyword arguments are not supported
>     137         # http://goldenspud.com/webrog/archives/2004/07/20/ 
> pyqt-platform-inconsistencies/
> --> 138         apply(qt.QWidget.__init__, (self,parent,name) + args)
>     139
>     140         if rw: # user-supplied render window
>
> TypeError: argument 2 of QWidget() has an invalid type
>
>
> my knowledge of qt is non-existent,so i cannot go any further  
> without your help.
> In case this helps,the following is a list of python modules with  
> the name "qt" on my computer:
>
> PIL.ImageQt
> PyQt4.Qt
> PyQt4.QtAssistant
> PyQt4.QtCore
> PyQt4.QtDesigner
> PyQt4.QtGui
> PyQt4.QtNetwork
> PyQt4.QtOpenGL
> PyQt4.QtSql
> PyQt4.QtSvg
> PyQt4.QtTest
> PyQt4.QtXml
> PyQt4 (package)
> PyQt4.elementtree.ElementPath
> PyQt4.elementtree.ElementTree
> PyQt4.elementtree (package)
> PyQt4.pyqtconfig
> PyQt4.uic.Compiler (package)
> PyQt4.uic.Compiler.compiler
> PyQt4.uic.Compiler.indenter
> PyQt4.uic.Compiler.qobjectcreator
> PyQt4.uic.Compiler.qtproxies
> PyQt4.uic.Loader (package)
> PyQt4.uic.Loader.loader
> PyQt4.uic.Loader.qobjectcreator
> PyQt4.uic (package)
> PyQt4.uic.exceptions
> PyQt4.uic.objcreator
> PyQt4.uic.properties
> PyQt4.uic.pyuic
> PyQt4.uic.uiparser
> matplotlib.backends.backend_qt
> matplotlib.backends.backend_qt4
> matplotlib.backends.backend_qt4agg - Render to qt from agg
> matplotlib.backends.backend_qtagg - Render to qt from agg
> pytz.zoneinfo.Asia.Aqtau
> pytz.zoneinfo.Asia.Aqtobe
> vtk.qt.QVTKRenderWidget - A simple VTK input file for PyQt, the qt  
> bindings for python.
> vtk.qt.QVTKRenderWindowInteractor - A simple VTK input file for  
> PyQt, the qt bindings for python.
> vtk.qt (package) - pyQt widgets for VTK.
> ImageQt
>
> observe the large number with the prefix PyQt4....the pyqt  
> designers seem to have split up the functionality of pyqt,though as  
> i said earlier,i do no knoq anything of qt :)
>

I don't know much about PyQt 4, but it doesn't seem to be supported  
yet by VTK.
  Can't you simply install PyQt 3 ?

Gaëtan


> On 4/15/07, Gaëtan Lehmann <gaetan.lehmann at jouy.inra.fr> wrote:
> Le 15 avr. 07 à 00:49, anirudh vij a écrit :
>
> > just found out a new problem:
> > using qt-4.2.3 and pyqt 4,itk.show3D() cannot work because the file
> > itkvtkextras.py in /usr/local/lib/InsightToolkit/Wrap_Itk/Python/
> > itkExtras has a line
> >
> > import qt
> >
> > now,in pyqt4,the import syntax is
> >
> > import PyQt4
> >
> > so all code using the earlier syntax is broken.i fixed it in 1-2
> > files,but this problem will keep coming up.is it possible to make a
> > symlink in python's site-packages 'qt' to point to 'PyQt4'?
>
> can you try to replace
>
>    import qt
>
> by
>
>    try:
>        import qt
>    except ImportError:
>        import PyQt4 as qt
>
> if it work for you, I'll put it in cvs.
>
> Thanks,
>
> Gaëtan
>
>
> >
> > On 4/15/07, anirudh vij < anirudhvij at gmail.com> wrote:
> > >ItkVtkGlue is not properly installed on your system :-)
> > that was indeed the problem.maybe i installed in the wrong prefix
> > the last 2 times.
> > >If you are interested by getting some infos on labelized  
> objects, you
> > >can install one of my contributions to ITK:
> >
> >   >http://voxel.jouy.inra.fr/darcsweb/darcsweb.cgi ?
> > >r=binaryAttributeMorphology;a
> > >=summary
> >
> > >you can get it with darcs ( www.darcs.net):
> >
> >   >darcs get http://voxel.jouy.inra.fr/darcs/contrib-itk/
> > >binaryAttributeMorphology/
> >
> >
> > unfortunately ,the proxy which i connect to has blocked the ports
> > used by svn ,cvs,and darcs :(
> > guess will have to wait till your contrib makes it to the itk  
> source .
> >
> > On 4/15/07, Gaëtan Lehmann <gaetan.lehmann at jouy.inra.fr > wrote:
> > Le 14 avr. 07 à 21:25, anirudh vij a écrit :
> >
> > > >You didn't sent me the content of your /usr/local/InsightToolkit/
> > > >WrapITK/Python/itkExtras/ directory. Can you do that ?
> > >
> > > this directory contains an __init__.py file.the reference to  
> show3d
> > > () in this is:
> > >
> > > def show(input, **kargs) :
> > >   """display an image
> > >   """
> > >   import itk
> > >   img = image(input)
> > >   if img.GetImageDimension() == 3 and "show3D" in dir(itk):
> > >           return itk.show3D(input, **kargs)
> > >   else :
> > >           # print "2D not supported yet, use the 3D viewer."
> > >           return show2D(input, **kargs)
> > >
> >
> > ItkVtkGlue is not properly installed on your system :-)
> > Please go back to Wrapping/WrapITK/ExternalProjects/ItkVtkGlue/ and
> > reinstall it. Be sure to set the same prefix than the one you used
> > for ITK itself.
> >
> >
> > > >Are you using PyBuffer to pass data from ITK to scipy ?
> > >
> > > afraid had'nt heard of it till now.was using the most primitive
> > > way,temp files :)
> > > but will try now for sure.
> > >
> > > there's something new thats come up in the meanwhile.the best way
> > > to explain would be to paste ipython's output:
> > >
> > >
> > > In [159]: bbox=lab_stat.GetBoundingBox(1)
> > >
> > > In [160]: bbox
> > > Out[160]:
> > > '_e0b9c208_p_std__vectorTlong_int_std__allocatorTlong_int_t_t'
> > >
> > > In [161]: type(bbox)
> > > Out[161]: <type 'str'>
> > >
> > > here lab_stat is a itk.LabelStatisticsImageFilter instance.why is
> > > bounding box being returned as string instead of std::vector?
> > > is'nt std::vector wrapped by default?the wrap_itk paper mentions
> > > that vector_double wrapping is off by default.is that so for
> > > vector_long and vector_unsignedshort also?
> >
> > std::vector and itk::Vector are not the same classes.
> > Some instantiations of itk::Vector are available, but sadely, there
> > is no instantiation of std::vector available with wrapitk.
> > If you are interested by getting some infos on labelized objects,  
> you
> > can install one of my contributions to ITK:
> >
> >    http://voxel.jouy.inra.fr/darcsweb/darcsweb.cgi?
> > r=binaryAttributeMorphology;a=summary
> >
> > you can get it with darcs ( www.darcs.net):
> >
> >    darcs get http://voxel.jouy.inra.fr/darcs/contrib-itk/
> > binaryAttributeMorphology/
> >
> > an example which use that contrib can be found at:
> >
> >    http://voxel.jouy.inra.fr/darcs/agrobi/agrobi.py
> >
> > The bounding box is provided by the method GetRegion() of the
> > LabelObject.
> > There is not much doc for now I'm afraid.
> >
> > Gaëtan
> >
> > >
> > > >Can you send a short script which reproduce
> > > >the problem ?
> > > this problem happens for all filters.i will send the script  
> file in
> > > a next post.
> > >
> > > On 4/14/07, Gaëtan Lehmann < gaetan.lehmann at jouy.inra.fr > wrote:
> > > Hi,
> > >
> > > Please keep the discussions about wrapitk on the user list: it can
> > > help others to fix there problems in the future :-)
> > >
> > > Le 14 avr. 07 à 11:09, anirudh vij a écrit :
> > >
> > > > hi gaetan,
> > > > kudos once again for creating wrap itk.It has speeded up my  
> work a
> > > > lot.Prototyping is truly horrible in cpp.
> > > >
> > > > in course of my use i faced some problems.hope you'll be able to
> > > > guide towards the solution.
> > > >
> > > > 1)still could'nt get show3d() working.my versions of qt and pyqt
> > > > are both 4.2.3. maybe thats the problem.
> > >
> > > it shouldn't prevent you to see the show3D class in the itk  
> module.
> > >
> > >
> > > > anyway,i installed mayavi which has excellent python
> > > > compatibility.i would like to write a wrapper for show3d() which
> > > > would make a call to mayavi whenever show3d() is called,maybe  
> with
> > > > some extra options.where should i place the .py file give  
> that no
> > > > show3d.py currently exists in /usr/local/lib/ 
> InsightToolkit.maybe
> > > > you could consider moving the itk.show framework entirely to
> > mayavi
> > > > in the future .it would mean fewer dependencies on one  
> hand,and a
> > > > unified show2d() and show3d() interface on the other(sice mayavi
> > > > can show 2d images with extra options of visualization)
> > >
> > > I'm still looking for a good interface for python and ITK. I'm not
> > > sure that mayavi is what I exactly what I want though, but have an
> > > interface for it would be a great feature :-)
> > > The best way to go, IMHO, is to create a mayavi function or  
> class to
> > > display the image, and to put that function in a module in the
> > > itkExtras dir, so its content will automatically appear in the itk
> > > module - show3D is made that way.
> > >
> > > >
> > > > 2)whenever a filter is incorrectly initialized and an update is
> > > > triggered,wrap_itk stops working for that session.subsequent
> > > > imports produce the error:module swig not defined.
> > > >
> > > > 3)after succesfully triggering an update on a filter,if some
> > > > parameters are changed subsequently,and an update is again
> > > > triggered,there is no change.for example.
> > > > dil= itl.BinaryDilateImageFilter.IFUS3US3.New()
> > > > dil.SetKernel(se)  #se is some strel
> > > > dil.Update()   #works fine
> > > > dil.SetKernel(se2)
> > > > dil.Update() #no change :(
> > > >
> > > > is it a problem with my installation or is this the way it is
> > > > supposed to behave.
> > >
> > > it looks like a problem. Can you send a short script which  
> reproduce
> > > the problem ? It would help a lot to reproduce it and to debug.
> > >
> > > >
> > > > currently i am trying to extend wrap_itk using scipy ( i.e. make
> > > > calls cleaner,add routines that directly do common tasks etc).
> > >
> > > Are you using PyBuffer to pass data from ITK to scipy ?
> > >
> > > > i will report any major successes.
> > > >
> > >
> > > Please, do :-)
> > >
> > > Gaëtan
> > >
> > >
> > > --
> > > Gaëtan Lehmann
> > > Biologie du Développement et de la Reproduction
> > > INRA de Jouy-en-Josas (France)
> > > tel: +33 1 34 65 29 66    fax: 01 34 65 29 09
> > > http://voxel.jouy.inra.fr
> > >
> > >
> > >
> > >
> > >
> >
> > --
> > Gaëtan Lehmann
> > Biologie du Développement et de la Reproduction
> > INRA de Jouy-en-Josas (France)
> > tel: +33 1 34 65 29 66    fax: 01 34 65 29 09
> > http://voxel.jouy.inra.fr
> >
> >
> >
> >
> >
> >
>
> --
> Gaëtan Lehmann
> Biologie du Développement et de la Reproduction
> INRA de Jouy-en-Josas (France)
> tel: +33 1 34 65 29 66    fax: 01 34 65 29 09
> http://voxel.jouy.inra.fr
>
>
>
>
>

--
Gaëtan Lehmann
Biologie du Développement et de la Reproduction
INRA de Jouy-en-Josas (France)
tel: +33 1 34 65 29 66    fax: 01 34 65 29 09
http://voxel.jouy.inra.fr



-------------- next part --------------
A non-text attachment was scrubbed...
Name: PGP.sig
Type: application/pgp-signature
Size: 186 bytes
Desc: =?ISO-8859-1?Q?Ceci_est_une_signature_=E9lectronique_PGP?=
Url : http://public.kitware.com/pipermail/insight-users/attachments/20070417/90fbe194/PGP-0001.pgp


More information about the Insight-users mailing list