La création de volume 3D de 2D tranche ensemble d'images en niveaux de gris
Je suis pour créer un volume 3D de niveaux de gris de l'image définie à l'aide de Matlab. Un ensemble contient un continu et quantifié les tranches de 2D image en niveaux de gris. Je suis toujours me considérais comme une recrue dans Matlab, mais c'est ce que j'ai actuellement dans mon esprit:
- créer un espace vide pour le volume 3D.
- Sur chaque image, nous réalisons tous le prétraitement de l'opération, de sorte que nous en avons eu la partie est de notre intérêt. (Dans cette question, supposons que ce prétraitement partie toujours fonctionner parfaitement)
- Passer par l'image, chaque pixel de coordonnées x et y sur la 2D sera de transfert à l'espace vide. Pour la coordonnée z, on peut utiliser le numéro de la tranche à l'égard de la distance entre chaque tranche. Si un pixel est adjacent à un autre pixel, la 3D, les points seront reliés ensemble.
- Répéter au cours des 2 dernières étapes jusqu'à ce que toutes les tranches sont fait. Nous allons maintenant nous avons tous les points connectés, tout comme dans les coupes 2D.
Mais voilà le problème, comment peut-on connecter les points entre les tranches, de sorte que ces points peuvent devenir un volume? Ou est-il une façon plus robuste à faire dans Matlab? Toute suggestion est très apprécié.
une question connexe: Interpolation le long de la 2-D les tranches image
OriginalL'auteur Karl | 2011-07-31
Vous devez vous connecter pour publier un commentaire.
Partie 0 - Hypothèses
Partie 1 - Visualisation de Volume 3D à partir d'Une Pile d'Images en 2D
De visualiser ou de reconstruction d'un volume 3D à partir d'une pile d'images en 2D, vous pouvez essayer ce qui suit boîtes à outils de matlab.
Un 3D CT/IRM images interactives de glissement de la visionneuse
http://www.mathworks.com/matlabcentral/fileexchange/29134-3d-ctmri-images-interactive-sliding-viewer
[2] Viewer3D
http://www.mathworks.com/matlabcentral/fileexchange/21993-viewer3d
[3] Image3
http://www.mathworks.com/matlabcentral/fileexchange/21881-image3
[4] Surface2Volume
http://www.mathworks.com/matlabcentral/fileexchange/8772-surface2volume
[5] SliceOMatic
http://www.mathworks.com/matlabcentral/fileexchange/764
Noter que si vous êtes familier avec VTK, vous pouvez essayer ceci:
[6] matVTK
http://www.cir.meduniwien.ac.at/matvtk/
Je suis actuellement en train de coller avec [5] SliceOMatic pour sa simplicité et sa facilité d'utilisation. Toutefois, par défaut, le rendu 3D est assez lent dans Matlab. Tournant sur openGL, permettrait de donner un rendu plus rapide. (http://www.mathworks.com/help/techdoc/ref/opengl.html) Ou tout simplement, set(gcf, 'Rendu', 'OpenGL').
Partie 2 - l'Interpolation des pixels entre les tranches
Pour interpoler les pixels entre les tranches, vous devez spécifier une méthode d'interpolation (certains de ces outils ont cette capacité et de la flexibilité. Sinon, pour vous donner une longueur d'avance, voici quelques exemples d'interpolation sont bicubique, les splines polynomiales etc..(vous pouvez faire ce travail par la recherche sur google ou/google scholar pour les méthodes d'interpolation beaucoup plus spécifique à votre domaine de problème).
Partie 3 - 3D Pré-traitement
En regardant vos procédures, vous traitez les données volumétriques par le traitement de chacune des images 2D en premier. Dans de nombreux algorithmes avancés, ou en vraie 3D, le traitement, ce que vous pouvez faire est de traiter les donnī 3D de domaine premier (il suffit de mettre, vous prenez le 26 voisins ou plus de compte de la première.). Une fois cette étape effectuée, vous pouvez tout simplement la sortie de la volumétrie des données dans une pile d'images en 2D pour la coupe transversale de la visualisation ou de la fourniture de l'un de ces boîtes à outils pour l'affichage en 3D ou sortie de troisième partie 3D applications de visualisation.
J'ai suivi les concepts ci-dessus pour mon propre imagerie médicale projets de recherche et la conclusion ci-dessus est basé sur mon expérience de recherche présentés ici (avec les dernières révisions).
Je vous remercie. j'espère que les lecteurs ne trouverez ce utile
Pourriez-vous dresser une liste de certaines de ces ressources pour l'interpolation des tranches? Je demande parce que, il y a assez peu de ressources là-bas qui ne sont pas pertinentes pour ce problème particulier.
OriginalL'auteur Gary Tsui
MATLAB généralement parcelles de volumétrie de données à l'aide d'un tableau 3d. Les points de données sont spatialement uniformément séparés le long de chaque axe. Si il y a des sites dans le tableau 3d pour lesquelles vous n'avez pas de données, généralement ils sont affectés à la
NaN
valeur et les différentes fonctions de traçage peuvent généralement gérer cela de manière raisonnable (c'est à dire généralement se comporter comme vous le souhaitez).Si vous chargez les tranches dans le tableau 3d tels que les points adjacents dans la direction z de données sont également à proximité dans la 3ème dimension de la matrice, alors vous devriez être bien.
OriginalL'auteur Brendan