Changes

Jump to navigation Jump to search
1,664 bytes added ,  06:28, 14 June 2019
Unified layout. Revisit links https.
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
     −
===Supporting library===
+
== What is the aim of this package? ==
[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
+
Digital communications in medicine (DICOM) is an information standard. Originally created for image transfer, the standard now deals with an large range of medical data. See http://medical.nema.org/ for more info.
 +
 
 +
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.
 +
 
 +
== 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==
 +
[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 33: Line 47:  
  mingw32-make all
 
  mingw32-make all
   −
===Features===
+
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==
 
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)
Line 39: 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==
 
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.
   Line 62: 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]]

Navigation menu