The pyminc version of hello world.Edit
Keeping with other tutorials on how to program with the MINC toolkit, here's a simple example for how to open a volume, add one to every voxel, then write it out again. This being python, the code is nice and short!
#!/usr/bin/env python from pyminc.volumes.factory import * from numpy import * import sys if __name__ == "__main__": # get the input file infile = volumeFromFile(sys.argv) # get the output file using the same dimension info as the input file outfile = volumeLikeFile(sys.argv, sys.argv) # add one to the data outfile.data = infile.data + 1 # write out and close the volumes outfile.writeFile() outfile.closeVolume() infile.closeVolume()
Here's what the code does. The first bits are the imports of different modules - the one non-standard module is pyminc.volumes.factory. Most all creation of pyminc volume instances is done through a set of factory methods. They are:
|volumeFromFile||opens minc volume from an existing file - useful for reading existing data.|
|volumeLikeFile||creates a new minc volume from an existing file - useful for writing data.|
|volumeFromInstance||creates a new minc volume from an existing instance (python object)|
|volumeFromDescription||creates a new minc volume by specifying the dimensions, sizes, starts, etc.|
The next line of the code assigns the output files data to be the input files data plus 1. Every pyminc volume has a data attribute, which is a numpy array. Note that the data is not actually read until the data attribute is accessed. The last bits then write the output file to disk and closes both volumes.