\documentclass[english, 10pt, a4paper,headsepline]{scrbook}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage[left=2cm,right=1cm,top=2cm,bottom=2cm,twoside]{geometry}
\usepackage{array}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage[numbers]{natbib}
\usepackage{listings}
\usepackage{color}
\usepackage{graphics}
\usepackage{nonfloat}
\include{version}
%\makeatletter
\definecolor{listinggray}{gray}{0.9}
\lstset{backgroundcolor=\color{listinggray}}
\usepackage{babel}
\makeatother
\begin{document}
\vfill{}
\title{Mona User and Programming Guide \\Software Version: \miaversion}
\vfill{}
\date{01. March 2007}
\author{Gert Wollny}
\maketitle
This is the Mona Programming Guide.
It is dedicated how to write software based on the infrastructure provided by mia.
\tableofcontents{}
\chapter*{Preface}
\section*{License}
Copyright (c) 2007 Gert Wollny
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1
or any later version published by the Free Software Foundation; with no Invariant Sections,
with no Front-Cover Texts and with no Back-Cover Texts.
A copy of the license is available at http://www.gnu.org/copyleft/fdl.html
\section*{Changes}
\begin{center}
\begin{tabular}{|c|c|}
\hline
Date & Description of changes\\
\hline
\hline
01/03/2007 & Initial Release\\
\hline
\end{tabular}
\end{center}
\pagestyle{headings}
\chapter{Introduction}
This is the Mona Programming Guide. This document describes, how mia can be installed and used to
write software.
This document is maintained by Gert Wollny <gert.wollny@acm.org>.
Additions, modifications or corrections may be mailed there for inclusion in the next release.
\section{Installation}
In order to use Mona, it has currently to be installed from source code.
To do so, your software environment has to meet the following pre-requisites:
\begin{enumerate}
\item You will need a POSIX-compatible environment - any flavor of UNIX, LINUX , BSD or MacOSX based systems should work out of the box.
For Microsoft Windows Computers you will need to install a compatibility layer like CygWin (http://www.cygwin.com/) or MingW (http://www.mingw.org/).
Be warned, however, since this has not yet been tested.
\item You need a ANSI-compatible C++ compiler - GNU g++ (>=3.3) (http://gcc.gnu.org) is known to work.
\item The BOOST >= 1.33 (http://www.boost.org) library
\item GModule >= 2.0, a library provided by glib >= 2.0 (http.gtk.org)
\item popt, the RPM-command line parsing library is needed
\item Doxygen, an automatic documentation generator is a plus.
\end{enumerate}
If all of the above pre-requisites are met, the installation of mia boils down to:
\lstset{language=bash}
\begin{lstlisting}
tar -zxvf mia-0.1.0.tgz
cd mia-0.1.0
./configure --prefix=<where-to-install>
make
make install
\end{lstlisting}
In order to test some of the components, you may run {}``make check''.
\chapter{Adding a new General Plugin Type}
\label{ch:addpluginstype}
\chapter{Data IO}
\label{ch:io}
\section{Loading/Storing Data}
\label{sec:Loading and Storing of data}
\section{Adding a new IO Plugin File Type}
\label{sec:newfilehandler}
\section{Adding a new data type plugin io}
\label{sec:adddatatypeio}
\include{programs}
\chapter{List of Filters and associated plug-ins}
\label{ch:plug}
\newcommand\plugtabstart{\begin{tabular}{|p{0.1\columnwidth}|p{0.1\columnwidth}|p{0.5\columnwidth}|p{0.1\columnwidth}|}\hline}
This chapter lists all the plugins available in mia.
The descriptions follow the following pattern:
\begin{description}
\item [Plugin:]\emph{the name by which the plugin is selected on the command
line}
\item [Description:] A description of the filter
\item [Parameters:] a list of the plugin parameters
\plugtabstart
parameter name& parameter type& description of the parameter & default value\\\hline
\end{tabular}
\end{description}
\section{2D image filters}
\label{sec:2dfilters}
In this section the following notation is used: $g$ indicates the source image,
$\hat{f}$ is the output image, and $S_{xy}$ is the set of pixels that is covered by the filter mask.
For an in-depth discussion of most of the filters presented here, see, e.g., \citet{gonzales02:dip}.
\subsection*{Downscale Filter}
\begin{description}
\item [Plugin:] downscale
\item [Description:] An filter that uses a seperable kernel to filter a 2D image.
For available kernels see Section \ref{sec:spacialkern}
\item [Parameters:] bx, by, kernel
\plugtabstart
bx & int & blocksize in x direction $\in [1,2147483647]$ & 1 \\\hline
by & int & blocksize in y direction $\in [1,2147483647]$ & 1 \\\hline
kernel & string & smoothing filter kernel type to be applied & gauss \\\hline
\end{tabular}
\end{description}
\subsection*{Intensity based bandpass filter}
\begin{description}
\item [Plugin:]bandpass
\item [Description:]An intensity band pass filter - all pixels with intensities
outside the given range are set to zero, all other pixels remain the
same ($x:=x\in [min,max]\:?\: x\::\:0$
\item [Parameters:] min, max
\plugtabstart
min& float& lower bound of the bandpass range &0\\\hline
max& float& upper bound of the bandpass range &3.40282e+38\\\hline
\end{tabular}
\end{description}
\subsection*{Seperable Convolution Filter}
\begin{description}
\item [Plugin:] sepconv
\item [Description:] An filter that uses a seperable kernel to filter a 2D image.
For available kernels see Section \ref{sec:spacialkern}
\item [Parameters:] kx, ky
\plugtabstart
kx& string & filter kernel applied in the x-direction & gauss:w=1 \\\hline
ky& string & filter kernel applied in the y-direction & gauss:w=1 \\\hline
\end{tabular}
\end{description}
%
%
%
\section{3D Filter}
\label{sec:3dfilters}
\subsection*{Downscale Filter}
\begin{description}
\item [Plugin:] downscale
\item [Description:] An filter that uses a seperable kernel to filter a 3D image.
For available kernels see Section \ref{sec:spacialkern}
\item [Parameters:] bx, by, bz, kernel
\plugtabstart
bx & int & blocksize in x direction $\in [1,2147483647]$ & 1 \\\hline
by & int & blocksize in y direction $\in [1,2147483647]$ & 1 \\\hline
bz & int & blocksize in z direction $\in [1,2147483647]$ & 1 \\\hline
kernel & string & smoothing filter kernel type to be applied & gauss \\\hline
\end{tabular}
\end{description}
\subsection*{Intensity based bandpass filter}
\begin{description}
\item [Plugin:]bandpass
\item [Description:]An intensity band pass filter - all pixels with intensities
outside the given range are set to zero, all other pixels remain the
same ($x:=x\in [min,max]\:?\: x\::\:0$
\item [Parameters:] min, max
\plugtabstart
min& float& lower bound of the bandpass range &0\\\hline
max& float& upper bound of the bandpass range &3.40282e+38\\\hline
\end{tabular}
\end{description}
\subsection*{Separable Convolution Filter}
\begin{description}
\item [Plugin:] sepconv
\item [Description:] An filter that uses a seperable kernel to filter a 3D image.
For available kernels see Section \ref{sec:spacialkern}
\item [Parameters:] kx, ky, kz
\plugtabstart
kx& string & filter kernel applied in the x-direction & gauss:w=1 \\\hline
ky& string & filter kernel applied in the y-direction & gauss:w=1 \\\hline
kz& string & filter kernel applied in the z-direction & gauss:w=1 \\\hline
\end{tabular}
\end{description}
\section{Spacial Filter Kernels}
\label{sec:spacialkern}
\subsection*{Gaussian Convolution Kernel}
\begin{description}
\item [Plugin:] gauss
\item [Description:] The kernel of a spacial Gaussien filter
\item [Parameters:] w
\plugtabstart
w& int & half width of the kernel, actual width = $2 * w + 1$ & 1 \\\hline
\end{tabular}
\end{description}
\bibliographystyle{plainnat}
\cleardoublepage\addcontentsline{toc}{chapter}{\bibname}\bibliography{segment}
\end{document}