Line 1: |
Line 1: |
− | At an early development stage. [http://octave.svn.sourceforge.net/viewvc/octave/trunk/octave-forge/extra/dicom/ octave-forge svn]
| + | The {{Forge|dicom}} package is part of the [[Octave Forge]] project. The package is at an early development stage and it is maintained by Andy Buckle with contributions by Judd Storrs and Kris Thielemans. |
− | *Maintainer: Andy Buckle [http://sourceforge.net/sendmessage.php?touser=1760416contact]
| |
− | *Currently worked on by: Kris Thielemans
| |
− | | |
− | Auto-generated docs from the current package: {{Forge|dicom}}
| |
| | | |
| == What is the aim of this package? == | | == What is the aim of this package? == |
Line 10: |
Line 6: |
| This package provides functions to read and (eventually) write DICOM files. The functions in the package are intended to have similar usage as | | This package provides functions to read and (eventually) write DICOM files. The functions in the package are intended to have similar usage as |
| the dicom functions in the Matlab Image Processing Toolbox. In Octave they are separate: most image package users will not use dicom, and its dependency might be considered troublesome. | | the dicom functions in the Matlab Image Processing Toolbox. In Octave they are separate: most image package users will not use dicom, and its dependency might be considered troublesome. |
| + | |
| + | == Platforms == |
| + | |
| + | {{Warning|The information of this section needs be reviewed (June 2019).}} |
| + | *Linux. Tested on OpenSuSE 11.4 and Ubuntu. No known issues. GDCM is required: see below. |
| + | *mingw |
| + | **Ben Lindner's Octave 3.2.4 and the mingw build environment (gcc 4.4.0): dicom package 0.1.1 does not build against this older version of the Octave API. |
| + | **Tatsuro/Nitzan's Octave 3.4.3 and mingw build environment (gcc 4.5.2): gdcm and dicom package build OK. Get segfault in ntdll.dll when one of the dicom*.oct files calls something from a gdcm*.dll. |
| + | **mxe-octave: dicom and gdcm distributed as part of the installed package. |
| + | *Cygwin: Panic when oct file called (or maybe when oct file uses gdcm dll). Need to try rebaseall |
| | | |
| ==Supporting library== | | ==Supporting library== |
− | [http://sourceforge.net/apps/mediawiki/gdcm/index.php?title=Main_Page GCDM]. You can usually get this via your package manager, e.g. on Ubuntu | + | [http://gdcm.sourceforge.net/wiki/index.php/Main_Page GDCM]. You can usually get this via your package manager, e.g. on Ubuntu |
| | | |
| sudo apt-get install libgdcm2.0 | | sudo apt-get install libgdcm2.0 |
| | | |
− | Alternatively, build it yourself. Get the source with subversion. | + | Alternatively, build it yourself. Get the source with git. |
| | | |
− | svn co https://gdcm.svn.sourceforge.net/svnroot/gdcm/branches/gdcm-2-0 | + | git clone https://git.code.sf.net/p/gdcm/gdcm |
| | | |
| 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 40: |
Line 46: |
| cmake -G "MinGW Makefile" -DGDCM_BUILD_SHARED_LIBS=ON ..\gdcm-2-0 | | cmake -G "MinGW Makefile" -DGDCM_BUILD_SHARED_LIBS=ON ..\gdcm-2-0 |
| mingw32-make all | | mingw32-make all |
| + | |
| + | On Cygwin gdcm 2.0.18 (and maybe some other versions) may have a problem with newer cmake. This kludge persuades cmake to define WIN32. |
| + | |
| + | cmake -DGDCM_BUILD_SHARED_LIBS=ON -DCMAKE_CXX_COMPILER=g++.exe -DCMAKE_LEGACY_CYGWIN_WIN32=1 ../gdcm-2.0.18/ |
| | | |
| ==Features== | | ==Features== |
Line 47: |
Line 57: |
| *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 (write pixel data to a DICOM format file) |
| + | *dicomuid (generate a DICOM unique id) |
| + | *isdicom (verify if a file is a DICOM formatted file) |
| | | |
| ==Todo== | | ==Todo== |
| | | |
| *dicomanon | | *dicomanon |
− | *dicomuid
| |
− | *dicomwrite
| |
− | *isdicom
| |
| | | |
| ==Questions== | | ==Questions== |
Line 70: |
Line 80: |
| **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. Answer: assign to a field like Private_3243_0010 (as Matlab)
| |
− | *dicominfo: Items in sequences are not necessarily the same, so are stored as nested structs like dcm.RTDoseROISequence?.Item_1.DoseUnits?(as Matlab)
| |
| | | |
− | [[Category:OctaveForge]] | + | == Answered == |
− | [[Category:Packages]] | + | *dicominfo: Items in sequences are not necessarily the same, so are stored as nested structs like dcm.RTDoseROISequence.Item_1.DoseUnits(as Matlab) |
| + | *What does dicominfo do when a tag is not in its dictionary? Answer: assign to a field like Private_3243_0010 (as Matlab) |
| + | |
| + | == See also == |
| + | * {{Forge|dicom}} at [[Octave Forge]]. |
| + | * [https://sourceforge.net/projects/gdcm/ Grassroots DICOM]. |
| + | |
| + | [[Category:Octave Forge]] |