Editing Dicom package
Jump to navigation
Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
− | + | At an early development stage. [http://octave.svn.sourceforge.net/viewvc/octave/trunk/octave-forge/extra/dicom/ octave-forge svn] | |
+ | *Maintainer: Andy Buckle [http://sourceforge.net/sendmessage.php?touser=1760416contact] | ||
+ | *Currently worked on by: Kris Thielemans | ||
− | = | + | ===Supporting library=== |
− | + | [http://sourceforge.net/apps/mediawiki/gdcm/index.php?title=Main_Page GCDM]. You can usually get this via your package manager,e e.g. on Ubuntu | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | ==Supporting library== | ||
− | [http:// | ||
sudo apt-get install libgdcm2.0 | sudo apt-get install libgdcm2.0 | ||
− | Alternatively, build it yourself. Get the source with | + | Alternatively, build it yourself. Get the source with subversion. |
− | + | svn co https://gdcm.svn.sourceforge.net/svnroot/gdcm/branches/gdcm-2-0 | |
cmake and g++ are required. create a gdcmbin directory parallel to the gdcm-2-0 directory. Change to gdcmbin and then run cmake (Linux/cygwin). | cmake and g++ are required. create a gdcmbin directory parallel to the gdcm-2-0 directory. Change to gdcmbin and then run cmake (Linux/cygwin). | ||
Line 47: | Line 33: | ||
mingw32-make all | mingw32-make all | ||
− | + | ===Features=== | |
− | |||
− | |||
− | |||
− | = | ||
All of these still need work, but they exist, and are usable to some extent. | All of these still need work, but they exist, and are usable to some extent. | ||
*dicomdict (load different dict - file follows same format as Matlab's) | *dicomdict (load different dict - file follows same format as Matlab's) | ||
− | *dicominfo (load metadata into octave struct. | + | *dicominfo (load metadata into octave struct. nasty bug in SQ loading) |
*dicomlookup (keyword <-> tag) | *dicomlookup (keyword <-> tag) | ||
*dicomread (load pixel data, 2D or 3D int types. Does not yield colormaps, yet.) | *dicomread (load pixel data, 2D or 3D int types. Does not yield colormaps, yet.) | ||
− | *dicomwrite ( | + | *dicomwrite (only does some 2D int types, ATM. No metadata control, yet) |
− | |||
− | |||
− | ==Todo== | + | ===Todo=== |
*dicomanon | *dicomanon | ||
+ | *dicomuid | ||
− | ==Questions== | + | ===Questions=== |
I don't have a Matlab license available. I would like to make this package compatible with the dicom functions in Matlab's image processing toolbox, as far as possible. | I don't have a Matlab license available. I would like to make this package compatible with the dicom functions in Matlab's image processing toolbox, as far as possible. | ||
*Octave (and Matlab) stores images (y,x) and DICOM is intrinsically (x,y). Does Matlab transpose images when it loads them? | *Octave (and Matlab) stores images (y,x) and DICOM is intrinsically (x,y). Does Matlab transpose images when it loads them? | ||
− | **matlab reads the data from the dicom file as if it's a raw block of numbers (and then converts if necessary). | + | **matlab reads the data from the dicom file as if it's a raw block of numbers (and then converts if necessary). Therefore, current Octave/dicom behaviour is compatible with matlab. |
*I would like people to try m-files that worked with Matlab to let me know of problems. | *I would like people to try m-files that worked with Matlab to let me know of problems. | ||
*(not necessarily) Matlab related: I need examples of odd DICOM files. I have plenty with complex metadata, but I need some with unusual images. | *(not necessarily) Matlab related: I need examples of odd DICOM files. I have plenty with complex metadata, but I need some with unusual images. | ||
Line 80: | Line 61: | ||
**silently convert the metadata to match the pixel type? | **silently convert the metadata to match the pixel type? | ||
**error and do nothing? | **error and do nothing? | ||
− | + | *What does dicominfo do when a tag is not in its dictionary: skip it or give error? I was wondering about turning the tag into a variable name, something like Tag_3243_0010. (Matlab 6.5 (2002): Private__3243_0010) | |
− | + | *dicominfo: Items in sequences are not necessarily the same, so cannot be stored in arrays of structs. (Matlab 6.5 (2002): makes nested structs like dcm.RTDoseROISequence?.Item_1.DoseUnits?) | |
− | *dicominfo: Items in sequences are not necessarily the same, so | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |