Redux » History » Revision 6
Revision 5 (Jim Pulokas, 07/13/2011 10:45 AM) → Revision 6/12 (Neil Voss, 08/09/2011 01:02 PM)
h1. redux
redux is a library for loading an image, doing some basic processing and generating a viewable image.
!redux_basic_idea.png!
h2. Goals
* simple to use python library
* simple to use network daemon that can answer requests for an image and the pipeline of processing to do on it
* simple to use command line client that uses either the network daemon or locally imported python library to do processing
* complex behind-the-scenes result caching
h2. Potential uses
* a command line program like xv or imagemagick to view myami images and generate publication quality results
* preparing image for display in Leginon, including contrast adjustments, binning, power spectrum, etc
* any functions in leginon/appion where you need to either bin or calculate power spectrum
* preparing image for display on web pages. web server can contact redux server. this can replace php-mrc module which no longer compiles with php > 5.2
h2. Current design as of 5/12/2011
!redux_more_detail.png!
h2. New Ideas as of 7/13/2011
Investigating "gstreamer":http://gstreamer.freedesktop.org as a framework on which to build redux. gstreamer allows plugins called "elements" to be connected together to form a pipeline or graph that does multimedia processing. Here is an example application built using the command line program "gst-launch":
<pre>gst-launch filesrc location=example.png ! pngdec ! jpegenc ! filesink location=test.jpg</pre>
h2. README file:
<pre>
INTRODUCTION
Redux is a utility for running a pipeline of simple image processing routines.
The main purpose is to produce display worthy images (JPEG, PNG, etc) from
raw MRC images. It includes a caching mechanism to reduce processing time at
the expence of disk or memory usage.
INSTALL:
prerequisites: python, numpy, scipy, pyami
Install using "python setup.py install" or just use a local sandbox and just
make sure redux is in your pythonpath
USING IT:
There are two basic ways to use redux. The first is to use it directly as a
python package. You import redux and do processing in your python script.
The second is to start a redux server, which can be located elsewhere on your
network. You then make requests to the server using the client of your choice
(python, php, etc.).
TRY IT:
Run the stand-alone redux script (bin/redux). Without any options or
arguments, it will print out a help message.
To Do:
cache management, clean up old files, etc.
server and client config scripts
security
</pre>