Em 18-03-2012 15:25, Luca Antiga escreveu:
Excellent, I'm happy to know you're on the right track.
Have fun!

Luca


On Mar 18, 2012, at 1:30 PM, Lia Silva wrote:

Em 18-03-2012 11:56, Luca Antiga escreveu:
Hi Lia,
that's not quite what I intended. I'll you a few more explicit suggestions:

1) all the algorithms in vmtk are already in C++. The fact that you're using them in vmtk scripts is just for convenience. Note that this does not impose *any* overhead,
speed-wise.

2) make sure you understand why you need to have a C++-only code. Is
it for speed only? See point 1). Is if because you want to incorporate vmtk in
a purely C++ program? This would make more sense.

3) every algorithm in vmtk is a VTK class. If you know how to program in C++ using VTK, you know how to program in C++ using vmtk. So, make sure you are proficient writing VTK code before you move on with vmtk. There's a great resource of examples here:
http://www.vtk.org/Wiki/VTK/Examples/Cxx

4) Once you have addressed 1-3, have a look into vmtk/vmtkScripts and identify the scripts you're interested in and take a look at what classes are used. For instance, the code for
vmtksurfacetriangle is

        cleaner = vtk.vtkCleanPolyData()
        cleaner.SetInput(self.Surface)
        cleaner.Update()

        triangleFilter = vtk.vtkTriangleFilter()
        triangleFilter.SetInput(cleaner.GetOutput())
        triangleFilter.Update()

        self.Surface = triangleFilter.GetOutput()

which in C++ would become

        vtkCleanPolyData* cleaner = vtkCleanPolyData::New();
        cleaner->SetInput(surface);
        cleaner->Update();

        vtkTriangleFilter* triangleFilter = vtkTriangleFilter::New();
        triangleFilter->SetInput(cleaner->GetOutput());
        triangleFilter->Update();

        surface = triangleFilter->GetOutput();

As you see, the high-level code is almost exactly the same, and in both
cases, the call to Update triggers code that is already written in C++.

Hope this helps clarifying, but most of all, what you should clarify is point 2, i.e. what is the need you're trying to address when you say you want pure C++ code.

Best regards

Luca


On Mar 17, 2012, at 6:41 PM, Lia Silva wrote:

Em 17-03-2012 07:40, Luca Antiga escreveu:
Dear Lia,
vmtk code presents itself as Python code, but it is in fact a tiny wrapper
on top of C++ code. All algorithms are already implemented in C++ (see
vmtk/vtkVmtk directory). If you look for code optimizations, you should look
into the C++ code in that directory.
Best regards

Luca


--
Luca Antiga, PhD
Cofounder and Principal Scientist, Orobix Srl
via L.A. Muratori 3, 24123 Bergamo, Italy

orobix: www.orobix.com <http://www.orobix.com/>
home: lantiga.github.com <http://lantiga.github.com/>
twitter: twitter.com/lantiga <http://twitter.com/lantiga>

On Mar 17, 2012, at 12:50 AM, Lia Silva wrote:



Hello all!

How can i convert a vmtk code into c++ code, so i can run it faster? The
code in vmtk it's attached.

Thank you in advance



<tudo>------------------------------------------------------------------------------
This SF email is sponsosred by:
Try Windows Azure free for 90 days Click Here
http://p.sf.net/sfu/sfd2d-msazure_______________________________________________
vmtk-users mailing list
vmtk-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/vmtk-users

Não foram detectados vírus nesta mensagem.
Verificado por AVG - www.avg.com <http://www.avg.com/>
Versão: 2012.0.1913 / Base de dados de Vírus: 2114/4874 - Data de Lançamento: 03/16/12

So, it means that i have to implement all in c++ since the beginning? For example, i used the /vmtkimagereader/, so in c++ i've to use/Dicomseriereadprinttagswrite/? And for the /vmtkimagevoiselector /i have to use the /RegionofInterestImageFilter/? Is that it? I'm so confused... Isn't there another way easier and faster? I thought i could convert directly into c++..

Thank you for all your pacience
------------------------------------------------------------------------------
This SF email is sponsosred by:
Try Windows Azure free for 90 days Click Here
http://p.sf.net/sfu/sfd2d-msazure_______________________________________________
vmtk-users mailing list
vmtk-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/vmtk-users

Não foram detectados vírus nesta mensagem.
Verificado por AVG - www.avg.com <http://www.avg.com/>
Versão: 2012.0.1913 / Base de dados de Vírus: 2114/4878 - Data de Lançamento: 03/18/12

Dear Luca,

Thank you for the answer. It was very helpfull. In fact, the main reason i want to use just C++ isn't just to make it faster. This is also a reason, but i dont know how exactly vmtk works, and i need to do a automatic/semi-automatic tool for measure the aorta diameter. I found vmtk by accident and i liked it very much cause its easier to work with, but i dont know if i can make a automatic tool using it (i dont know how to automatize the process) . In my circle, nobody knows vmtk, and my thesis' supervisor just work with c++, so i'm going forward using vmtk (cause i dont have much experience with c++ and vmtk scripts are easier for me) and later, i pretend to convert into c++ so my supervisor can correct it.

You gave me an excellent help and now i'm doing the step 4 by seeing the vmtk scripts. If i have any addicional doubt, i hope i can count on you.

Thank you very much for your pacience and dedication.

Best regards

Lia

Não foram detectados vírus nesta mensagem.
Verificado por AVG - www.avg.com <http://www.avg.com>
Versão: 2012.0.1913 / Base de dados de Vírus: 2114/4878 - Data de Lançamento: 03/18/12

Dear Luca,

I decided not to convert into C++, for now. It's not worth it.

Now i'm facing two problems: is there a way to automatize some parameters? I would like to know if i can change the python code, so i dont need to input the parameters manually at the console. In the /vmtkimagevoiselector/ i can specify the coordinates of my cube, and if i could insert them in the code it became easier. Same thing with the /vmtklevelsetsegmentation/. The parameters are always the same, so can i insert them into the code? And how do i do that?

The other issue is: I want to measure the diameter of the ascending aorta in nine specifics points. I computed the centerline that gave me the central points and the radius in all points since the source till the target! But i just need nine points. Is there a way to do that?

For this project i'm doing a lot of steps.. If i could avoid the most of them, it would be easier to automatize the process and to decrease the processing time. I mean, for compute the centerline its really necessary to run the /vmtkimagevoiselector, vmtklevelsetsegmentation/ and /vmtkmarchingcubes/?

I'm sorry for the amount of questions, but i'm new at vmtk and programming..

Best regards,

Lia Silva
------------------------------------------------------------------------------
This SF email is sponsosred by:
Try Windows Azure free for 90 days Click Here 
http://p.sf.net/sfu/sfd2d-msazure
_______________________________________________
vmtk-users mailing list
vmtk-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/vmtk-users

Reply via email to