Getting started

Prerequisites

In order to use this package, a number of software packages are needed. All development and testing has been done on Linux (ubuntu). It should in principle work on most other operating systems as well. Please refer to the individual software packages for installation procedures.

python

Obviously, python is needed. It is recommended to have the interactive interpreter <code>ipython</code> which provides useful features like command history, on-line help with paging, identifier completion, etc.

An SQL database server

This is required for the pysteg.sql subpackage. Only postgres has been used in testing and examples, and is therefore recommended. The command line client psql is useful to inspect database contents. It should work with other database systems supported by the SQLObject API, but no promises.

SQLObject

This is required for the pysteg.sql subpackage. A recent version of the python library SQLObject is needed. In testing version 0.12.4 has been used. The version included in Ubuntu 11.10 is insufficient.

numpy/scipy/pywt

The numpy and scipy libraries for python provide functions and data types for scientific computing, and matrix algebra in particular. The pywt package provides wavelet operations. The default versions available in ubuntu work fine.

libSVM

The libsvm library is needed to train and test support vector machines (SVM).

Download and installation

Tarballs are available for download.

  • Version 0.97 switched to using the mlpy interface.
  • Version 0.96 is the last version to use the libSVM API, supporting SVM as the only classifier algorithm

Unfortunately, easy-to-use installation instructions remain on the TODO list. The tarball includes a set of packages and scripts. Whether you put it somewhere in your path or run them via absolute pathnames is up to you.

I am not sure how easy it will be to get the code running on your system. If you have trouble, please ask. Maybe we can work it out together. Personally, I have used Ubuntu to run the software. I actually gave up compiling C components under Mac OS X.

python 2.6 and 2.7 have used in the development. It may or may not work with other versions of python. You also need an assortment of libraries, including scipy, numpy, matplotlib, pywt (wavelets), and PIL, as well as the C API and a C compiler.

If you want to run svm, you need the libsvm library.

Compilation

The jpeg package contains C code which must be compiled. The jpegObject module depends on the numpy C-API, which is relatively recent and whose support has changed in recent versions of Python.

The Makefile has been written for Python 2.7 on Ubuntu, and on this system it is sufficient to run make all from the root directory.

Acknowledgement

The pysteg package uses aggregates code from many sources.

jpeglib

JPEG encoding/decoding library from IJG. This is used in the jpeg subpackage, and has been modified only to avoid conflicts with header files used by the Python C-API. This is unmodified and has a more permissive licence.

sompy

A Self-organsing map module by Kyle Dickerson and others was the basis form itml.som module. This is used under the GPL licence (version not specified), and the module may be redistributed separately under any version of GPL. No other module currently depends on this.

gaussion_kde

The itml.kde module is based on scipy.stats.gaussian_kde of Robert Kern. It is used under the two-clause BSD licence used by scipy.

libsvm

The libsvm library of Chih-Chung Chang and Chih-Jen Lin is used, and the binary libraries must be aquired and compiled separately. The python API has been included and modified to make more of the code natively python.

Please see appropriate copyright and licence notices included with the respective components.

Table Of Contents

Previous topic

Steganography and Steganalysis in Python

Next topic

Overview of packages

This Page