Code: Difference between revisions

From Octave
Jump to navigation Jump to search
m (Initial structure)
 
Line 3: Line 3:


==Ecnometrics==
==Ecnometrics==
*Michael Creel's Econometrics notes and octave files: http://pareto.uab.es/mcreel/Econometrics/ )try the Econometrics/MyOctaveFiles directory too)
*Michael Creel's Econometrics notes and octave files: http://pareto.uab.es/mcreel/Econometrics/ (try the Econometrics/MyOctaveFiles directory too)
* Ludwig Kanzler's Econometric software (much of it adapted to Octave):
**http://www2.gol.com/users/kanzler/index.htm#L.%20Kanzler:%20Software
**Licence: "All rights reserved", Unfree for distributing modified versions


==Communications Toolbox==
==Communications Toolbox==

Revision as of 01:44, 27 November 2011

Chaos and fractal contributions and toolboxes

Ecnometrics

Communications Toolbox

OctaveForge now contains a fairly complete implementation of a Matlab R13 compatible communications toolbox http://octave.sourceforge.net/communications/index.html. This includes

  • Random signal creation/analysis
  • Source coding (Quantization, Compand)
  • Block coding (BCH, Reed-Solomon)
  • Modulations (QASK, PSK, etc)
  • Galois fields of even order [i.e. GF(2^m) ]

With a recent version of the OctaveForge installed (version 20030602 or later), online help is available with the command

octave:1> comms info

There are still functions missing or with limitations, and the documentation is not complete. You are therefore welcome to send patches.

Various Communications-Related Octave Code

Digital communications in medicine (DICOM)

At an early development stage. octave-forge svn

  • Maintainer: Andy Buckle [1]
  • Currently worked on by: Kris Thielemans

Supporting library

GCDM. I think the libraries must be built. Getting 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).

> mkdir gdcmbin
> ls
gdcmbin gdcm-2-0
> cd gdcmbin
> cmake -DGDCM_BUILD_SHARED_LIBS=ON ../gdcm-2-0/

This creates a Makefile in your gdcmbin directory. You can easily edit cmake options with "make edit_cache", for example to build applications like gdcmdump. "make help" is also very useful.

make install

On my system, I also had to add this to my ~/.bashrc.

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

Mingw32 is similar. Get openSSL: Win32 Openssl v1.0.0a Light

cmake -G "MinGW Makefile" -DGDCM_BUILD_SHARED_LIBS=ON ..\gdcm-2-0
mingw32-make all

Features

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)
  • dicominfo (load metadata into octave struct. nasty bug in SQ loading)
  • dicomlookup (keyword <-> tag)
  • dicomread (load pixel data, 2D or 3D int types. Does not yield colormaps, yet.)
  • dicomwrite (only does some 2D int types, ATM. No metadata control, yet)

Todo

  • dicomanon
  • dicomuid

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.

  • 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). 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.
  • (not necessarily) Matlab related: I need examples of odd DICOM files. I have plenty with complex metadata, but I need some with unusual images.
    • More than one sample per pixel
    • Colour
    • Float types
  • DA (date) VR: does Matlab turn them into a string?
  • if the user supplies metadata (eg HighBit?, BitsStored?) that describe the type of the pixels and this is not in agreement with the type of the image matrix supplied, does Matlab
    • silently convert the image pixel type to match the metadata?
    • silently convert the metadata to match the pixel type?
    • 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?)