L'importation de l'ITK/VTK en Matlab ou Matlab dans VTK/ITK de l'environnement?
Pour un projet en cours, j'ai à utiliser et ne mathemetics sur les informations fournies dans les matrices ainsi que l'utilisation de l'ITK/VTK fonctions pour l'affichage de l'information médicale /rend. Fondamentalement, je dois utiliser les deux routines matlab et VTK/ITK dans un (je suppose) à 50/50. Le problème est que, depuis que j'ai utiliser les deux, je veux décider à l'avance de la méthode à utiliser:
- Importation ITK et VTK libs dans matlab:
pour cela, vous devez construire votre propre VTK comme un début. Puis, par cette exemple l'idée est d'écrire votre VTK-code .mex fichiers. Ce sont des fichiers en
que vous pouvez programmer en c-code en fonction de matlab. - Importer des fonctions matlab dans ITK/VTK environnement: pour cela je voudrais utiliser une langue, probablement python, pour faire des calculs matriciels. J'ai pu faire l'utilisation de Numpy. C'est un matlab-type de module de calcul en Python et convertir vtk données de numpy données et je peux me servir de matplotlib pour faire parcelles.
Avantages /inconvénients de l'ITK/VTK importés dans matlab
+ facile à faire matlab calculs et tracé
+ matlab est l'un des plus puissants outils pour travailler avec des matrices
+ ont utilisé matlab avant (subjective)
- Avoir installé matlab
- l'exécution de matlab charges de votre pc
Avantages /inconvénients matlab importés dans l'ITK/VTK environnement
+ pas besoin d'avoir installé matlab
+ moins d'une souche pour PC, et depuis médical ensembles de données nécessitent beaucoup de votre pc c'est gentil.
+ ITK/VTK environnement déjà mis en place dans ce cas (actuellement à l'aide de cette façon, mais jamais avec matlab/matrices .tapis)
- avez entendu des histoires il est difficile de faire matlab calculs de cette façon. Peu brouillon.
- moins d'expérience en python (en combinaison avec matlab 0)
Alors...? conclusion
En fait, je suis à la recherche pour les personnes qui ont travaillé dans l'un des deux environnements, mais depuis je pense qu'il y a telle un peu d'eux, j'aime entendre les suggestions de ce qu'il faut rechercher avant de faire le choix final. Il vous en coûtera beaucoup de temps pour le faire fonctionner d'une manière que j'en ai besoin donc, ce serait une perte de temps d'essayer les deux (un délai).
notes supplémentaires
- J'ai essayé de Simulink de matlab en combinaison avec VTK/ITK libs, mais je ne l'aime pas.
- Bien qu'une solution pour le problème est bien sûr le mieux que je puisse obtenir ici, je suis également heureux avec des gens ayant de l'expérience en faisant des choix qui sont dans la base, le même que celui. Ce sont des keypoints à rechercher lors de la fabrication d'un tel choix? Je manque un point crucial dans mon avantages et les inconvénients?
OriginalL'auteur bastijn | 2009-05-26
Vous devez vous connecter pour publier un commentaire.
VTK est livré avec des bindings Python (une description). Je suis en supposant que l'ITK ne trop. Si vous n'avez pas beaucoup de code en Matlab, je devine que vous aurez un temps beaucoup plus facile à l'intégration transparente de VTK/ITK avec python numpy, matplotlib, etc.
EDIT:
À mon avis, les non-trivial MEX fonctions sont une douleur à écrire. Le compromis peut souvent être de l'écriture de nouvelles MEX fonctions pour chaque tâche ou de prendre plus de temps pour écrire une grande partie de l'interface de code.
En fonction de ce que vous faites, scipy (un ensemble de paquets python, y compris matplotlib, numpy, etc.) fait beaucoup de ce que Matlab ne. Il y a de subtiles différences et les divers compromis. Automatique de radiodiffusion est incroyablement utile, une fois que vous obtenez le coup de lui. MathWorks a récemment ajouté BSXFUN, mais c'est automatique avec numpy. Si vous êtes en train de faire beaucoup de travail avec les matrices creuses ou en appelant beaucoup plus avancés fonctions d'algèbre linéaire, de vérifier la numpy docs pour voir si ce dont vous avez besoin existe encore.
En fonction de ce que vous avez fait avec votre environnement jusqu'à présent, je vous suggère d'essayer le Python approche pour quelques semaines. Voir si son tracé, des possibilités et des fonctions mathématiques sont suffisant pour vos besoins. S'attendre à se taper la tête contre le mur un peu au début, car la documentation n'est pas aussi mature que Matlab.
OriginalL'auteur Mr Fooz
Ce qui pourrait aider: mlabwrap est assez sophistiqué d'appeler Matlab forme de Python. http://mlabwrap.sourceforge.net/
OriginalL'auteur
Il m'a fallu un certain temps pour obtenir à la fois les versions d'essai mais pour conclure sur cette question:
J'ai choisi d'utiliser python combiné avec numpy/scipy et matplotlib. Il y a une seule raison principale pourquoi j'ai choisi d'utiliser ce. Lorsque vous importez des itk et vtk dans Matlab, vous devez utiliser Mex fonctions pour programmer votre code C dans. Ces mex fichiers sont dans la routine de la manière suivante:
le texte d'alt http://www.bastijn.nl/zooi/routine.png
Maintenant, quand la routine est livré à l'endroit où le fichier mex est, en mains le contrôle de ce fichier mex et des incendies, comme une fonction, le fichier mex, c'est comme une boîte noire. Après le Mex fichier a fait sa chose en mains le contrôle de retour à matlab et la routine continue. Mais vous ne pouvez pas faire tout matlab opérations tandis que le Mex fichier est en cours de licenciement ou l'acces a des variables dans ce mexfile de matlab. Il est donc impossible d'exécuter certaines itk/vtk code, notez qu'il ne fonctionne pas et de modifier certaines des variables utilisées dans le mex fichier (créé il y a, mais ils vont aussi mourir à cause de la boîte noire ne rentrant votre résultat) pour accélérer les tests de quoi travailler. Il faut tirer l'ensemble de mex à nouveau la fonction.
C'est un inconvénient majeur, car vous avez besoin de relancer l'complet mex fichier (fonction C) pour tous les petits changements. Il y a occupé la fixation de cette grande constriction, mais parce qu'ils ne sont pas encore prêt et que j'ai besoin d'elle maintenant, j'ai choisi de prendre le python tour.
OriginalL'auteur bastijn
Bastjin, vous avez fait le bon choix: Python règles!
Plus d'information:
Pour l'option numéro 1, j'ai écrit ceci:
http://github.com/thewtex/matlab-itk-import
Mais, Comme vous le mentionnez, c'est l'option inférieure.
Voici quelques liens pour l'option numéro 2:
Mayavi2 de mlab a une belle possibilité de basculer entre les VTK et numpy.
WrapITK vous permet d'écrire des ITK pipelines en Python, et vous pouvez aller et venir avec Numpy avec le PyBuffer externe du projet y trouvent.
OriginalL'auteur thewtex
Un peu vieux post, mais je veux juste mentionner que matVTK ( http://www.cir.meduniwien.ac.at/matvtk/). Qui vous permet de faire tout votre calcul (Matlab, puis tracer vos données avec la bibliothèque vtk.
OriginalL'auteur dahoiv