Dicom package: Difference between revisions

1,026 bytes added ,  14 June 2019
Unified layout. Revisit links https.
(link to auto-docs)
(Unified layout. Revisit links https.)
(16 intermediate revisions by 7 users not shown)
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]]