[go: up one dir, main page]

Menu

[r201]: / mia2 / doc / userguide.tex  Maximize  Restore  History

Download this file

268 lines (196 with data), 7.9 kB

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
\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}