A quick note this time, compiled entirely over a course of a 45 minute train journey, but nevertheless with some cool pictures.
In the news recently was an update from the Visible Human Project, where cadavers are sliced into very thin (300 micron) sections, and each one is digitised so that the full structure of the body can be visualised.
The motivation here is to create a standard digital body, for teaching and reference. The full dataset is handed out only under authorisation, but a number of slices are freely available (e.g., pictured above). Usefully, there is also a low resolution animation of the complete slices available on this page. This was too good an opportunity to pass up, so I downloaded all 700kB and had a look.
Using ffmpeg I split the video into a sequence of frames
ffmpeg -i path/to/video.mpg -r 50 -f image2 path/to/output/%05d.png
where -i denotes the input file, -r denotes the number of frames per second to extract, and -f image2 indicates an image sequence is desired. The output filename format of the images is the last thing to be specified, here a 5 digit identifier padded with zeroes.
With the image sequence it now becomes possible to slice the 3D colour array along different axes using ImageJ (specifically the orthogonal views function, Cmd/Ctrl-Shift-H)
This is fun, and reveals hitherto non-obvious structure, but 2D is a bit boring. Moving to 3D then, there exists an excellent open source volume rendering tool used in the tomographic community called Drishti. Importing the iamge sequence in and fiddling with the colourmap to remove the blue background, we get a new rendering:
Now we can see lots more detail, including the 3D shapes of the bones and organs. By playing with the transparency and render options its possible to produce some really remarkable renderings. Unfortunately, due to the fact I’m attempting to render 3D datasets on a train without a GPU handy, Drishti is becoming a little crash-happy and refusing to co-operate. If you have a suitably powerful computer I encourage you to try making your own volume renderings. If you do, let me know!