I have a series of MRI images. I want to build a 3D model out of it, which not only presents the surface, but also contains the inside structures. What kind of photogrammetry based method can realize that?
This is a bit different from a conventional photogrammetry problem. You're not trying to estimate a 3D world from 2D projections. You have actual 3D information - you have the imaging slices - and you want to assemble them into a 3D model. That's a much easier problem, the kind you can solve from the comfort of your couch.
Do know the cutting planes that each image belongs to? If so, you can easily assemble them. Just plop down the images at each plane. If not, it will be hard to determine how the images stack. (Is image N on top of or below image K?)
If the images are not all taken from parallel cutting planes, then your problem is a bit easier. You can compute point correspondences between the slices and solve the alignment as an iterative registration problem. (i.e. every point in every image that "corresponds" should be at the same point in 3D space)
Now, making this into a 3D point cloud is easy - I would drop points based on the density at each point in each image, so that empty spaces are empty and dense objects have many points.
Building a mesh is way more difficult. If that's what you intend to do, and you're okay with hokey results, you might consider a triangulation approach to mesh building.
If you want good results, I would forego trying to fit a mesh to the cloud, and instead try to find density level sets in each 2D image, and see if you can build volumetric objects by following those level sets as isosurfaces in the 3D assembled scan.
The field you want to study is called Photogrammetry.
One place to begin is the Wikipedia article on the topic.
Actually the field is broader than what you are asking about but there is a more specific Wikipedia article on just this subfield too: 3D reconstruction from multiple images
Typically you would search for voxels with specific features, e.g. using thresholding and create your model as an isosurface made of the particles corresponding to those voxels..MRI images are dense 3 dimensional matrices, and without prior anatomical perprocessing or voxel selection you will endup with a dense cube.
you can check ITK Snap, it is a free tool reading NII and DCM images and using different techniques it would build basic 3D models
If you plan to build 3d wireframe or mesh from the slice images, you can consider to use marching cube method - as someone mentioned already in the answer, ITK/VTK can provide the pointer to start with.