]> git.rustad.me Git - master/commitdiff
LOL
authorBjørn Rustad <bjorn@rustad.me>
Sat, 31 Jan 2015 16:13:09 +0000 (17:13 +0100)
committerBjørn Rustad <bjorn@rustad.me>
Sat, 31 Jan 2015 16:13:09 +0000 (17:13 +0100)
13 files changed:
appendix.tex
bib.bib
continuous.tex
discrete.tex
fig/circ_rule.tex
fig/factory/contrast.m
fig/factory/contrast.tex
fig/factory/pmake.py
fig/fiddle.png [new file with mode: 0644]
introduction.tex
main.tex
maxflow.tex
results.tex

index 25e12d44fdc83e60a96e1b7efd109c94195bb122..a47b6df937a2f335489004b7814be8e6584e74f1 100644 (file)
@@ -1,4 +1,46 @@
 \chapter{\cpp{} implementation}
 
-\inputminted[fontsize=\scriptsize]{c++}{../image-restoration/graph.cpp}
+\fixme{well, code is at daim also, mention that?}
+
+My \cpp{} implementation can be found online at \cite{github}. It uses
+the open computer vision library OpenCV \cite{opencv_library} to load
+and save image files. The implementation has been tested on a Ubuntu
+Linux distribution, but it should in theory be portable to other
+platforms supported by OpenCV. A rudimentary graphics interface has also
+been made, shown in Figure~\ref{fig:fiddle}, to make it easier to play
+with the parameters of the algorithm.
+
+Both the push-relabel and the Boykov--Kolmogorov algorithms have been
+implemented. Although an effort has been made to improve the performance
+of both implementations, they are not ment to beat the fastest. The
+focus has rather been on clarity.
+
+Note that when implementing maximum flow algorithms it is not a good
+idea, memory- and performance-wise, to actually construct the residual
+graph $G_f$. Instead, every time we update the flow $f(u,v)$ we set
+the flow in the opposite direction to its negative value $f(v,u) =
+-f(u,v)$. Then we can at any time, consider the value $c(u,v) - f(u,v)$
+in the place of the residual capacity $c_f(u,v)$.
+
+For the gap relabeling heuristic of the push-relabel algorithm, we need
+to have a easy way of finding when a gap occurs. This is done by keeping
+track of how many vertices exist with each label.
+
+When the capacities have been updated in the Boykov--Kolmogorov
+algorithm, flow is sent along all two-edge paths such that they do not
+have to be considered by the main loop of the algorithm.
+
+\begin{figure}
+    \centering
+    \includegraphics[width=\textwidth]{fig/fiddle.png}
+    \caption[Graphical user interface]{Simple graphical user interface to play with the algorithm
+    parameters.}
+    \label{fig:fiddle}
+\end{figure}
+
+%\section{Performance comparison}
+
+%Maybe.
+
+%\inputminted[fontsize=\scriptsize]{c++}{../image-restoration/graph.cpp}
 
diff --git a/bib.bib b/bib.bib
index 07b195a560439454ba9b1ac3ed15df54e0836707..253f7f04f1ea5d020f78c23a94e24884a6f64f33 100644 (file)
--- a/bib.bib
+++ b/bib.bib
        URL = {http://dx.doi.org/10.1007/978-1-4612-1015-3},\r
 }\r
 \r
+@misc{github,\r
+       AUTHOR={Bjørn Rustad},\r
+       TITLE={\cpp{} implementation},\r
+       HOWPUBLISHED={\url{https://github.com/burk/image-restoration}}\r
+}\r
+\r
 @article{acar1994analysis,\r
        AUTHOR = {Acar, R. and Vogel, C. R.},\r
        TITLE = {Analysis of bounded variation penalty methods for ill-posed\r
index 39fb95d6f1e6e7f332b3bd948448d0f525377c5a..ff44c6e5a88b88216b04348d89edf46951257d03 100644 (file)
@@ -153,7 +153,7 @@ structures we want our anisotropy tensor to be sensitive to.
 \begin{figure}
     \centering{}
     \includegraphics[width=0.4\textwidth]{fig/edges.png}
-    \caption{%
+    \caption[The edge detector $\abs{\nabla f_\sigma(x)}$]{%
         The largest eigenvalue of the structure tensor is $\abs{\nabla
         f_\sigma(x)}^2$ and can as we see function as an edge detector.
     }
@@ -255,7 +255,7 @@ fingerprint analysis.
 
 The theory of existence and uniqueness for these kinds of variational
 methods is a minefield of more or less subtle problems. Even if we
-restrict ourself to a nice space such as $L^2(\Omega)$ we will at some
+restrict ourselves to a nice space such as $L^2(\Omega)$ we will at some
 point run into problems. The discussion here is not meant to give the
 most rigorous background, but rather an overview of what needs to be
 shown. Some problems will be worked around, while others will be skipped
@@ -266,7 +266,7 @@ The basic things we ask of our functional
     F(u) = \int_\Omega (u - f)^2 + \beta \, \TVA(u)
 \end{equation}
 to have a \emph{well-posed} problem are lower semicontinuity
-and coercivity for existence, convexity for uniqueness and stability. We restrict
+and coercivity for existence, and convexity for uniqueness. We restrict
 ourself to $L^2(\Omega)$ which makes sense with our fidelity term,
 assuming that $f \in L^2(\Omega)$ initially.
 
@@ -439,80 +439,80 @@ coercivity and sequential lower semi-continuity in the weak topology we
 can conclude that we have existence from \cite[Theorem
 5.1]{scherzer2008variational}.
 
-\subsection{Stability}
-
-The last property normally required for well-posedness is stability.
-Thus the question is how the solutions behave when we perturb the
-problem. We stick to $L^2(\Omega)$ and adopt a proof given by Acar and
-Vogel in \cite{acar1994analysis}.
-
-\begin{proposition}
-    Consider a sequence of perturbed problems
-    \begin{equation}
-        \min_{u \in L^2(\Omega)} F_n(u).
-    \end{equation}
-    Assume that each of the functionals $F_n$ is weakly sequentially
-    lower-semicontinuous, has a unique minimizer $u_n$, and in addition that they are
-    uniformly coercive in the sense that for any sequence $v_n \in
-    L^2(\Omega)$
-    \begin{equation}
-        \lim_{n \to \infty} F_n(v_n) = \infty \quad \text{whenever } \, \lim_{n \to
-        \infty} \norm{v_n}_{L^2} = \infty.
-        \label{eq:fn_coercive}
-    \end{equation}
-    Assume also that the problems are consistent in the sense that $F_n \to
-    F$ uniformly, i.e.\ given an $R > 0$ and $\epsilon > 0$ there exists an
-    $N$ such that
-    \begin{equation}
-        \abs{F_n(u) - F(u)} < \epsilon \quad \text{whenever } \, n \geq N \text{ and
-        } \norm{u}_{L^2} \leq R.
-        \label{eq:fn_concistent}
-    \end{equation}
-    The problem is then stable with respect to the perturbations $F_n$ in
-    the sense that if $u^*$ is a minimizer of $F$ we have
-    \begin{equation}
-        u_n \rightharpoonup u^*.
-        \label{eq:un_u_weak}
-    \end{equation}
-\end{proposition}
-\begin{proof}
-    As $u_n$ is a minimizer of $F_n$ we have
-    \begin{equation}
-        F_n(u_n) \leq F_n(u^*)
-    \end{equation}
-    and using \eqref{eq:fn_concistent} we get
-    \begin{equation}
-        %\lim F_n(u_n) \leq \limsup F_n(u_n) \leq \limsup F_n(u^*)
-        %= F(u^*) < \infty.
-        \lim_{n \to \infty} F_n(u_n) \leq \lim_{n \to \infty} F_n(u^*) =
-        F(u^*) < \infty.
-    \end{equation}
-    From the coercivity in \eqref{eq:fn_coercive} we obtain that
-    the sequence $u_n$ is bounded in $L^2(\Omega)$ and thus contains a
-    weakly convergent subsequence.
-
-    Assume that the convergence in \eqref{eq:un_u_weak} does not hold,
-    and denote the weakly convergent subsequence by $u_{n_j}
-    \rightharpoonup \bar{u} \neq u^*$. By the weak sequential lower
-    semicontinuity we have
-    \begin{equation}
-        \begin{aligned}
-            F(\bar{u}) &\leq \liminf_{j \to \infty} F\left(u_{n_j}\right) \\
-                       &= \liminf_{j \to \infty} \left(F\left(u_{n_j}\right) -
-        F_{n_j}\left(u_{n_j}\right)\right) + \liminf_{j \to \infty}
-            F_{n_j}\left(u_{n_j}\right) \\
-            &= \liminf_{j \to \infty} F_{n_j}\left(u_{n_j}\right) \\
-            &\leq F(u^*)
-        \end{aligned}
-    \end{equation}
-    which contradicts the uniqueness of $u^*$ and thus we can conclude
-    that the solutions of the perturbed problems converge $u_n
-    \rightharpoonup \bar{u} = u^*$.
-\end{proof}
-
-Note that these are properties of the continuous problem, and that the
-discretizations and numerical methods used for approximating a solution
-can have its own issues with consistency, convergence and stability.
+%\subsection{Stability}
+%
+%The last property normally required for well-posedness is stability.
+%Thus the question is how the solutions behave when we perturb the
+%problem. We stick to $L^2(\Omega)$ and adopt a proof given by Acar and
+%Vogel in \cite{acar1994analysis}.
+%
+%\begin{proposition}
+%    Consider a sequence of perturbed problems
+%    \begin{equation}
+%        \min_{u \in L^2(\Omega)} F_n(u).
+%    \end{equation}
+%    Assume that each of the functionals $F_n$ is weakly sequentially
+%    lower-semicontinuous, has a unique minimizer $u_n$, and in addition that they are
+%    uniformly coercive in the sense that for any sequence $v_n \in
+%    L^2(\Omega)$
+%    \begin{equation}
+%        \lim_{n \to \infty} F_n(v_n) = \infty \quad \text{whenever } \, \lim_{n \to
+%        \infty} \norm{v_n}_{L^2} = \infty.
+%        \label{eq:fn_coercive}
+%    \end{equation}
+%    Assume also that the problems are consistent in the sense that $F_n \to
+%    F$ uniformly, i.e.\ given an $R > 0$ and $\epsilon > 0$ there exists an
+%    $N$ such that
+%    \begin{equation}
+%        \abs{F_n(u) - F(u)} < \epsilon \quad \text{whenever } \, n \geq N \text{ and
+%        } \norm{u}_{L^2} \leq R.
+%        \label{eq:fn_concistent}
+%    \end{equation}
+%    The problem is then stable with respect to the perturbations $F_n$ in
+%    the sense that if $u^*$ is a minimizer of $F$ we have
+%    \begin{equation}
+%        u_n \rightharpoonup u^*.
+%        \label{eq:un_u_weak}
+%    \end{equation}
+%\end{proposition}
+%\begin{proof}
+%    As $u_n$ is a minimizer of $F_n$ we have
+%    \begin{equation}
+%        F_n(u_n) \leq F_n(u^*)
+%    \end{equation}
+%    and using \eqref{eq:fn_concistent} we get
+%    \begin{equation}
+%        %\lim F_n(u_n) \leq \limsup F_n(u_n) \leq \limsup F_n(u^*)
+%        %= F(u^*) < \infty.
+%        \lim_{n \to \infty} F_n(u_n) \leq \lim_{n \to \infty} F_n(u^*) =
+%        F(u^*) < \infty.
+%    \end{equation}
+%    From the coercivity in \eqref{eq:fn_coercive} we obtain that
+%    the sequence $u_n$ is bounded in $L^2(\Omega)$ and thus contains a
+%    weakly convergent subsequence.
+%
+%    Assume that the convergence in \eqref{eq:un_u_weak} does not hold,
+%    and denote the weakly convergent subsequence by $u_{n_j}
+%    \rightharpoonup \bar{u} \neq u^*$. By the weak sequential lower
+%    semicontinuity we have
+%    \begin{equation}
+%        \begin{aligned}
+%            F(\bar{u}) &\leq \liminf_{j \to \infty} F\left(u_{n_j}\right) \\
+%                       &= \liminf_{j \to \infty} \left(F\left(u_{n_j}\right) -
+%        F_{n_j}\left(u_{n_j}\right)\right) + \liminf_{j \to \infty}
+%            F_{n_j}\left(u_{n_j}\right) \\
+%            &= \liminf_{j \to \infty} F_{n_j}\left(u_{n_j}\right) \\
+%            &\leq F(u^*)
+%        \end{aligned}
+%    \end{equation}
+%    which contradicts the uniqueness of $u^*$ and thus we can conclude
+%    that the solutions of the perturbed problems converge $u_n
+%    \rightharpoonup \bar{u} = u^*$.
+%\end{proof}
+%
+%Note that these are properties of the continuous problem, and that the
+%discretizations and numerical methods used for approximating a solution
+%can have its own issues with consistency, convergence and stability.
 
 \section{Anisotropic coarea formula}
 
@@ -1212,10 +1212,10 @@ a continuous real-valued function on a nonempty compact
 space is bounded above. Thus the eigenvalues $s_1 \geq s_2$ of $S_\rho(x)$
 are bounded above and by the construction in
 \eqref{eq:sigma_construction}, there exists uniform bound $k$ such that
-the smallest eigenvalue of the anisotropy tensor $A(x)$ is bounded away
+the smallest eigenvalue $\sigma_2$ of the anisotropy tensor $A(x)$ is bounded away
 from zero, as
 \begin{equation}
-    \lambda_2 = \left(1
+    \sigma_2 = \left(1
     + \frac{(s_1 - s_2)^2}{\omega^2}\right)^{-1} \geq \left(1 +
     \frac{s_1^2}{\omega^2}\right)^{-1} \geq k > 0.
 \end{equation}
index ee35cb3d7a546fc9ccf2717b0db4fea6b19033a2..fd98fbfe39b04a59b808319841e6634724ea58f2 100644 (file)
@@ -586,6 +586,7 @@ their argument and then ignore all pixels except the ones they actually
 depend on.
 
 \subsection{Graph construction}
+\label{sec:graph_construction}
 
 \begin{figure}[t]
     \input{fig/norm_subgraph}
@@ -606,7 +607,8 @@ term coming from our aim to minimize the total variation.
 
 \begin{table}[b]
     \centering
-    \caption{Each row represents one of the two possible values of
+    \caption[Different combinations for the term
+    $F_\lambda^x(u^\lambda_x)$]{Each row represents one of the two possible values of
         $u^\lambda_x \in \{0,1\}$. The functional $F_\lambda^x(u^\lambda_x)$
         and minimum cut obtaining this configuration is shown. The last
         two columns show the capacities of the cut for each of the two
@@ -684,7 +686,8 @@ of $u^\lambda_x$ corresponds to cuts in the graph.
 
 \begin{table}[t]
     \centering
-    \caption{An overview of the possible configurations of the variables
+    \caption[Different combinations for the term $F^{x,y}(u^\lambda_x,
+    u^\lambda_y)$]{An overview of the possible configurations of the variables
         in the term $F^{x,y}(u^\lambda_x, u^\lambda_y)$. For each
         configuration the corresponding functional value and the cut yielding this
         configuration is shown. The last two columns show the capacities
index 2c01ca779095477d7ec9468badb9da036ba6a25d..9d41fa72e2ec79a40b7e8c2d9dd0e7a95dd60fb7 100644 (file)
 
 \end{tikzpicture}
 \caption[Consistency argument for the angle discretization]{%
-        \fixme{noooo}
-    We showed that the angular difference between subsequent angle
-    parameters goes to zero. The discretization in the $\phi$ dimension
+    We showed that the maximal angle difference $\Delta \phi_k$ goes to
+    zero. The discretization in the $\phi$ dimension
     can be viewed as a rectangle approximation rule of the integral, as
-    the summand is evaluated in one end of the interval $[\phi_k,
-    \phi_{k+1}]$.
+    the summand is evaluated at $\phi_k$, somewhere inside the interval $\Delta
+    \phi_k$.
 }
 \label{fig:circ_rule}
index 5f56138e29f40061e1473389e20961a01d1792bb..1204f55ed16f823926b6c47900efa463f2ab0ab5 100644 (file)
@@ -1,6 +1,6 @@
 tv   = imread('finger/r_p2_n32_b15000_g1000000000000_r10_s3.pgm');
 atv1 = imread('finger/r_p2_n32_b15000_g150_r10_s3.pgm');
-atv2 = imread('finger/r_p2_n32_b21450_g150_r10_s3.pgm');
+atv2 = imread('finger/r_p2_n32_b20970_g150_r10_s3.pgm');
 
 close all;
 hold on;
@@ -23,7 +23,7 @@ plot(atv2(100,:), 'g');
 plot(tv(100,:), 'b');
 box("off");
 axis([0 256 50 220]);
-h = legend('Anisotropic TV, $\beta$ = 15000            ', 'Anisotropic TV, $\beta$ = 21450', 'Isotropic TV');
+h = legend('Anisotropic TV, $\beta$ = 15000            ', 'Anisotropic TV, $\beta$ = 20970', 'Isotropic TV');
 set (h, 'fontsize', 9);
 legend('boxoff');
 print -dtikz "-S400,200" contrast.tex
index 97f20bbf50c68f3782b24de12ffce671dcb7fb56..7a6daae56c241eb724f3faa2eb3bde2a2dd892c4 100644 (file)
@@ -1,7 +1,7 @@
 % Title: glps_renderer figure
 % Creator: GL2PS 1.3.8, (C) 1999-2012 C. Geuzaine
 % For: Octave
-% CreationDate: Wed Jan 28 18:12:01 2015
+% CreationDate: Fri Jan 30 17:04:57 2015
 \begin{pgfpicture}
 \pgfsetlinewidth{0.01pt}
 \color[rgb]{1.000000,1.000000,1.000000}
 \pgflineto{\pgfpoint{360.789062pt}{42.135284pt}}
 \pgfusepath{stroke}
 \color[rgb]{0.000000,1.000000,0.000000}
-\pgfpathmoveto{\pgfpoint{54.421875pt}{73.776466pt}}
-\pgflineto{\pgfpoint{53.210938pt}{73.776466pt}}
+\pgfpathmoveto{\pgfpoint{54.421875pt}{72.817642pt}}
+\pgflineto{\pgfpoint{53.210938pt}{72.817642pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{55.632812pt}{73.776466pt}}
-\pgflineto{\pgfpoint{54.421875pt}{73.776466pt}}
+\pgfpathmoveto{\pgfpoint{55.632812pt}{72.817642pt}}
+\pgflineto{\pgfpoint{54.421875pt}{72.817642pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{56.843750pt}{73.776466pt}}
-\pgflineto{\pgfpoint{55.632812pt}{73.776466pt}}
+\pgfpathmoveto{\pgfpoint{56.843750pt}{72.817642pt}}
+\pgflineto{\pgfpoint{55.632812pt}{72.817642pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{58.054688pt}{73.776466pt}}
-\pgflineto{\pgfpoint{56.843750pt}{73.776466pt}}
+\pgfpathmoveto{\pgfpoint{58.054688pt}{72.817642pt}}
+\pgflineto{\pgfpoint{56.843750pt}{72.817642pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{59.265625pt}{73.776466pt}}
-\pgflineto{\pgfpoint{58.054688pt}{73.776466pt}}
+\pgfpathmoveto{\pgfpoint{59.265625pt}{72.817642pt}}
+\pgflineto{\pgfpoint{58.054688pt}{72.817642pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{60.476562pt}{102.541176pt}}
-\pgflineto{\pgfpoint{59.265625pt}{73.776466pt}}
+\pgfpathmoveto{\pgfpoint{60.476562pt}{104.458824pt}}
+\pgflineto{\pgfpoint{59.265625pt}{72.817642pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{61.687500pt}{102.541176pt}}
-\pgflineto{\pgfpoint{60.476562pt}{102.541176pt}}
+\pgfpathmoveto{\pgfpoint{61.687500pt}{104.458824pt}}
+\pgflineto{\pgfpoint{60.476562pt}{104.458824pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{62.898438pt}{102.541176pt}}
-\pgflineto{\pgfpoint{61.687500pt}{102.541176pt}}
+\pgfpathmoveto{\pgfpoint{62.898438pt}{104.458824pt}}
+\pgflineto{\pgfpoint{61.687500pt}{104.458824pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{64.109375pt}{102.541176pt}}
-\pgflineto{\pgfpoint{62.898438pt}{102.541176pt}}
+\pgfpathmoveto{\pgfpoint{64.109375pt}{104.458824pt}}
+\pgflineto{\pgfpoint{62.898438pt}{104.458824pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{65.320312pt}{102.541176pt}}
-\pgflineto{\pgfpoint{64.109375pt}{102.541176pt}}
+\pgfpathmoveto{\pgfpoint{65.320312pt}{104.458824pt}}
+\pgflineto{\pgfpoint{64.109375pt}{104.458824pt}}
 \pgfusepath{stroke}
 \pgfpathmoveto{\pgfpoint{66.531250pt}{78.570580pt}}
-\pgflineto{\pgfpoint{65.320312pt}{102.541176pt}}
+\pgflineto{\pgfpoint{65.320312pt}{104.458824pt}}
 \pgfusepath{stroke}
 \pgfpathmoveto{\pgfpoint{67.742188pt}{78.570580pt}}
 \pgflineto{\pgfpoint{66.531250pt}{78.570580pt}}
 \pgfpathmoveto{\pgfpoint{75.007805pt}{78.570580pt}}
 \pgflineto{\pgfpoint{73.796867pt}{78.570580pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{76.218750pt}{79.529404pt}}
+\pgfpathmoveto{\pgfpoint{76.218750pt}{80.488228pt}}
 \pgflineto{\pgfpoint{75.007805pt}{78.570580pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{77.429688pt}{79.529404pt}}
-\pgflineto{\pgfpoint{76.218750pt}{79.529404pt}}
+\pgfpathmoveto{\pgfpoint{77.429688pt}{80.488228pt}}
+\pgflineto{\pgfpoint{76.218750pt}{80.488228pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{78.640625pt}{79.529404pt}}
-\pgflineto{\pgfpoint{77.429688pt}{79.529404pt}}
+\pgfpathmoveto{\pgfpoint{78.640625pt}{80.488228pt}}
+\pgflineto{\pgfpoint{77.429688pt}{80.488228pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{79.851555pt}{79.529404pt}}
-\pgflineto{\pgfpoint{78.640625pt}{79.529404pt}}
+\pgfpathmoveto{\pgfpoint{79.851555pt}{80.488228pt}}
+\pgflineto{\pgfpoint{78.640625pt}{80.488228pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{81.062492pt}{75.694107pt}}
-\pgflineto{\pgfpoint{79.851555pt}{79.529404pt}}
+\pgfpathmoveto{\pgfpoint{81.062492pt}{74.735283pt}}
+\pgflineto{\pgfpoint{79.851555pt}{80.488228pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{82.273438pt}{75.694107pt}}
-\pgflineto{\pgfpoint{81.062492pt}{75.694107pt}}
+\pgfpathmoveto{\pgfpoint{82.273438pt}{74.735283pt}}
+\pgflineto{\pgfpoint{81.062492pt}{74.735283pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{83.484375pt}{75.694107pt}}
-\pgflineto{\pgfpoint{82.273438pt}{75.694107pt}}
+\pgfpathmoveto{\pgfpoint{83.484375pt}{74.735283pt}}
+\pgflineto{\pgfpoint{82.273438pt}{74.735283pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{84.695312pt}{75.694107pt}}
-\pgflineto{\pgfpoint{83.484375pt}{75.694107pt}}
+\pgfpathmoveto{\pgfpoint{84.695312pt}{74.735283pt}}
+\pgflineto{\pgfpoint{83.484375pt}{74.735283pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{85.906242pt}{75.694107pt}}
-\pgflineto{\pgfpoint{84.695312pt}{75.694107pt}}
+\pgfpathmoveto{\pgfpoint{85.906242pt}{74.735283pt}}
+\pgflineto{\pgfpoint{84.695312pt}{74.735283pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{87.117180pt}{75.694107pt}}
-\pgflineto{\pgfpoint{85.906242pt}{75.694107pt}}
+\pgfpathmoveto{\pgfpoint{87.117180pt}{74.735283pt}}
+\pgflineto{\pgfpoint{85.906242pt}{74.735283pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{88.328125pt}{75.694107pt}}
-\pgflineto{\pgfpoint{87.117180pt}{75.694107pt}}
+\pgfpathmoveto{\pgfpoint{88.328125pt}{74.735283pt}}
+\pgflineto{\pgfpoint{87.117180pt}{74.735283pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{89.539062pt}{75.694107pt}}
-\pgflineto{\pgfpoint{88.328125pt}{75.694107pt}}
+\pgfpathmoveto{\pgfpoint{89.539062pt}{74.735283pt}}
+\pgflineto{\pgfpoint{88.328125pt}{74.735283pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{90.750000pt}{75.694107pt}}
-\pgflineto{\pgfpoint{89.539062pt}{75.694107pt}}
+\pgfpathmoveto{\pgfpoint{90.750000pt}{74.735283pt}}
+\pgflineto{\pgfpoint{89.539062pt}{74.735283pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{91.960930pt}{75.694107pt}}
-\pgflineto{\pgfpoint{90.750000pt}{75.694107pt}}
+\pgfpathmoveto{\pgfpoint{91.960930pt}{74.735283pt}}
+\pgflineto{\pgfpoint{90.750000pt}{74.735283pt}}
 \pgfusepath{stroke}
 \pgfpathmoveto{\pgfpoint{93.171867pt}{79.529404pt}}
-\pgflineto{\pgfpoint{91.960930pt}{75.694107pt}}
+\pgflineto{\pgfpoint{91.960930pt}{74.735283pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{94.382812pt}{88.158813pt}}
+\pgfpathmoveto{\pgfpoint{94.382812pt}{89.117630pt}}
 \pgflineto{\pgfpoint{93.171867pt}{79.529404pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{95.593750pt}{88.158813pt}}
-\pgflineto{\pgfpoint{94.382812pt}{88.158813pt}}
+\pgfpathmoveto{\pgfpoint{95.593750pt}{89.117630pt}}
+\pgflineto{\pgfpoint{94.382812pt}{89.117630pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{96.804688pt}{88.158813pt}}
-\pgflineto{\pgfpoint{95.593750pt}{88.158813pt}}
+\pgfpathmoveto{\pgfpoint{96.804688pt}{89.117630pt}}
+\pgflineto{\pgfpoint{95.593750pt}{89.117630pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{98.015617pt}{88.158813pt}}
-\pgflineto{\pgfpoint{96.804688pt}{88.158813pt}}
+\pgfpathmoveto{\pgfpoint{98.015617pt}{89.117630pt}}
+\pgflineto{\pgfpoint{96.804688pt}{89.117630pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{99.226555pt}{88.158813pt}}
-\pgflineto{\pgfpoint{98.015617pt}{88.158813pt}}
+\pgfpathmoveto{\pgfpoint{99.226555pt}{89.117630pt}}
+\pgflineto{\pgfpoint{98.015617pt}{89.117630pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{100.437500pt}{88.158813pt}}
-\pgflineto{\pgfpoint{99.226555pt}{88.158813pt}}
+\pgfpathmoveto{\pgfpoint{100.437500pt}{89.117630pt}}
+\pgflineto{\pgfpoint{99.226555pt}{89.117630pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{101.648438pt}{88.158813pt}}
-\pgflineto{\pgfpoint{100.437500pt}{88.158813pt}}
+\pgfpathmoveto{\pgfpoint{101.648438pt}{89.117630pt}}
+\pgflineto{\pgfpoint{100.437500pt}{89.117630pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{102.859375pt}{88.158813pt}}
-\pgflineto{\pgfpoint{101.648438pt}{88.158813pt}}
+\pgfpathmoveto{\pgfpoint{102.859375pt}{89.117630pt}}
+\pgflineto{\pgfpoint{101.648438pt}{89.117630pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{104.070312pt}{88.158813pt}}
-\pgflineto{\pgfpoint{102.859375pt}{88.158813pt}}
+\pgfpathmoveto{\pgfpoint{104.070312pt}{89.117630pt}}
+\pgflineto{\pgfpoint{102.859375pt}{89.117630pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{105.281242pt}{88.158813pt}}
-\pgflineto{\pgfpoint{104.070312pt}{88.158813pt}}
+\pgfpathmoveto{\pgfpoint{105.281242pt}{89.117630pt}}
+\pgflineto{\pgfpoint{104.070312pt}{89.117630pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{106.492188pt}{88.158813pt}}
-\pgflineto{\pgfpoint{105.281242pt}{88.158813pt}}
+\pgfpathmoveto{\pgfpoint{106.492188pt}{89.117630pt}}
+\pgflineto{\pgfpoint{105.281242pt}{89.117630pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{107.703117pt}{82.405876pt}}
-\pgflineto{\pgfpoint{106.492188pt}{88.158813pt}}
+\pgfpathmoveto{\pgfpoint{107.703117pt}{81.447052pt}}
+\pgflineto{\pgfpoint{106.492188pt}{89.117630pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{108.914062pt}{82.405876pt}}
-\pgflineto{\pgfpoint{107.703117pt}{82.405876pt}}
+\pgfpathmoveto{\pgfpoint{108.914062pt}{81.447052pt}}
+\pgflineto{\pgfpoint{107.703117pt}{81.447052pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{110.124992pt}{82.405876pt}}
-\pgflineto{\pgfpoint{108.914062pt}{82.405876pt}}
+\pgfpathmoveto{\pgfpoint{110.124992pt}{81.447052pt}}
+\pgflineto{\pgfpoint{108.914062pt}{81.447052pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{111.335930pt}{88.158813pt}}
-\pgflineto{\pgfpoint{110.124992pt}{82.405876pt}}
+\pgfpathmoveto{\pgfpoint{111.335930pt}{89.117630pt}}
+\pgflineto{\pgfpoint{110.124992pt}{81.447052pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{112.546875pt}{88.158813pt}}
-\pgflineto{\pgfpoint{111.335930pt}{88.158813pt}}
+\pgfpathmoveto{\pgfpoint{112.546875pt}{89.117630pt}}
+\pgflineto{\pgfpoint{111.335930pt}{89.117630pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{113.757805pt}{88.158813pt}}
-\pgflineto{\pgfpoint{112.546875pt}{88.158813pt}}
+\pgfpathmoveto{\pgfpoint{113.757805pt}{89.117630pt}}
+\pgflineto{\pgfpoint{112.546875pt}{89.117630pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{114.968750pt}{88.158813pt}}
-\pgflineto{\pgfpoint{113.757805pt}{88.158813pt}}
+\pgfpathmoveto{\pgfpoint{114.968750pt}{89.117630pt}}
+\pgflineto{\pgfpoint{113.757805pt}{89.117630pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{116.179680pt}{82.405876pt}}
-\pgflineto{\pgfpoint{114.968750pt}{88.158813pt}}
+\pgfpathmoveto{\pgfpoint{116.179680pt}{81.447052pt}}
+\pgflineto{\pgfpoint{114.968750pt}{89.117630pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{117.390617pt}{82.405876pt}}
-\pgflineto{\pgfpoint{116.179680pt}{82.405876pt}}
+\pgfpathmoveto{\pgfpoint{117.390617pt}{81.447052pt}}
+\pgflineto{\pgfpoint{116.179680pt}{81.447052pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{118.601562pt}{82.405876pt}}
-\pgflineto{\pgfpoint{117.390617pt}{82.405876pt}}
+\pgfpathmoveto{\pgfpoint{118.601562pt}{81.447052pt}}
+\pgflineto{\pgfpoint{117.390617pt}{81.447052pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{119.812492pt}{82.405876pt}}
-\pgflineto{\pgfpoint{118.601562pt}{82.405876pt}}
+\pgfpathmoveto{\pgfpoint{119.812492pt}{81.447052pt}}
+\pgflineto{\pgfpoint{118.601562pt}{81.447052pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{121.023438pt}{88.158813pt}}
-\pgflineto{\pgfpoint{119.812492pt}{82.405876pt}}
+\pgfpathmoveto{\pgfpoint{121.023438pt}{89.117630pt}}
+\pgflineto{\pgfpoint{119.812492pt}{81.447052pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{122.234367pt}{82.405876pt}}
-\pgflineto{\pgfpoint{121.023438pt}{88.158813pt}}
+\pgfpathmoveto{\pgfpoint{122.234367pt}{81.447052pt}}
+\pgflineto{\pgfpoint{121.023438pt}{89.117630pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{123.445305pt}{109.252930pt}}
-\pgflineto{\pgfpoint{122.234367pt}{82.405876pt}}
+\pgfpathmoveto{\pgfpoint{123.445305pt}{110.211754pt}}
+\pgflineto{\pgfpoint{122.234367pt}{81.447052pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{124.656250pt}{109.252930pt}}
-\pgflineto{\pgfpoint{123.445305pt}{109.252930pt}}
+\pgfpathmoveto{\pgfpoint{124.656250pt}{110.211754pt}}
+\pgflineto{\pgfpoint{123.445305pt}{110.211754pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{125.867180pt}{109.252930pt}}
-\pgflineto{\pgfpoint{124.656250pt}{109.252930pt}}
+\pgfpathmoveto{\pgfpoint{125.867180pt}{110.211754pt}}
+\pgflineto{\pgfpoint{124.656250pt}{110.211754pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{127.078125pt}{109.252930pt}}
-\pgflineto{\pgfpoint{125.867180pt}{109.252930pt}}
+\pgfpathmoveto{\pgfpoint{127.078125pt}{110.211754pt}}
+\pgflineto{\pgfpoint{125.867180pt}{110.211754pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{128.289062pt}{109.252930pt}}
-\pgflineto{\pgfpoint{127.078125pt}{109.252930pt}}
+\pgfpathmoveto{\pgfpoint{128.289062pt}{110.211754pt}}
+\pgflineto{\pgfpoint{127.078125pt}{110.211754pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{129.500000pt}{109.252930pt}}
-\pgflineto{\pgfpoint{128.289062pt}{109.252930pt}}
+\pgfpathmoveto{\pgfpoint{129.500000pt}{110.211754pt}}
+\pgflineto{\pgfpoint{128.289062pt}{110.211754pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{130.710938pt}{109.252930pt}}
-\pgflineto{\pgfpoint{129.500000pt}{109.252930pt}}
+\pgfpathmoveto{\pgfpoint{130.710938pt}{110.211754pt}}
+\pgflineto{\pgfpoint{129.500000pt}{110.211754pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{131.921875pt}{109.252930pt}}
-\pgflineto{\pgfpoint{130.710938pt}{109.252930pt}}
+\pgfpathmoveto{\pgfpoint{131.921875pt}{110.211754pt}}
+\pgflineto{\pgfpoint{130.710938pt}{110.211754pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{133.132812pt}{109.252930pt}}
-\pgflineto{\pgfpoint{131.921875pt}{109.252930pt}}
+\pgfpathmoveto{\pgfpoint{133.132812pt}{110.211754pt}}
+\pgflineto{\pgfpoint{131.921875pt}{110.211754pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{134.343750pt}{109.252930pt}}
-\pgflineto{\pgfpoint{133.132812pt}{109.252930pt}}
+\pgfpathmoveto{\pgfpoint{134.343750pt}{110.211754pt}}
+\pgflineto{\pgfpoint{133.132812pt}{110.211754pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{135.554688pt}{109.252930pt}}
-\pgflineto{\pgfpoint{134.343750pt}{109.252930pt}}
+\pgfpathmoveto{\pgfpoint{135.554688pt}{110.211754pt}}
+\pgflineto{\pgfpoint{134.343750pt}{110.211754pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{136.765625pt}{109.252930pt}}
-\pgflineto{\pgfpoint{135.554688pt}{109.252930pt}}
+\pgfpathmoveto{\pgfpoint{136.765625pt}{110.211754pt}}
+\pgflineto{\pgfpoint{135.554688pt}{110.211754pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{137.976562pt}{109.252930pt}}
-\pgflineto{\pgfpoint{136.765625pt}{109.252930pt}}
+\pgfpathmoveto{\pgfpoint{137.976562pt}{110.211754pt}}
+\pgflineto{\pgfpoint{136.765625pt}{110.211754pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{139.187500pt}{90.076462pt}}
-\pgflineto{\pgfpoint{137.976562pt}{109.252930pt}}
+\pgfpathmoveto{\pgfpoint{139.187500pt}{89.117630pt}}
+\pgflineto{\pgfpoint{137.976562pt}{110.211754pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{140.398438pt}{90.076462pt}}
-\pgflineto{\pgfpoint{139.187500pt}{90.076462pt}}
+\pgfpathmoveto{\pgfpoint{140.398438pt}{89.117630pt}}
+\pgflineto{\pgfpoint{139.187500pt}{89.117630pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{141.609375pt}{65.147049pt}}
-\pgflineto{\pgfpoint{140.398438pt}{90.076462pt}}
+\pgfpathmoveto{\pgfpoint{141.609375pt}{64.188232pt}}
+\pgflineto{\pgfpoint{140.398438pt}{89.117630pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{142.820312pt}{86.241173pt}}
-\pgflineto{\pgfpoint{141.609375pt}{65.147049pt}}
+\pgfpathmoveto{\pgfpoint{142.820312pt}{88.158813pt}}
+\pgflineto{\pgfpoint{141.609375pt}{64.188232pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{144.031250pt}{65.147049pt}}
-\pgflineto{\pgfpoint{142.820312pt}{86.241173pt}}
+\pgfpathmoveto{\pgfpoint{144.031250pt}{64.188232pt}}
+\pgflineto{\pgfpoint{142.820312pt}{88.158813pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{145.242188pt}{65.147049pt}}
-\pgflineto{\pgfpoint{144.031250pt}{65.147049pt}}
+\pgfpathmoveto{\pgfpoint{145.242188pt}{64.188232pt}}
+\pgflineto{\pgfpoint{144.031250pt}{64.188232pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{146.453125pt}{65.147049pt}}
-\pgflineto{\pgfpoint{145.242188pt}{65.147049pt}}
+\pgfpathmoveto{\pgfpoint{146.453125pt}{64.188232pt}}
+\pgflineto{\pgfpoint{145.242188pt}{64.188232pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{147.664062pt}{65.147049pt}}
-\pgflineto{\pgfpoint{146.453125pt}{65.147049pt}}
+\pgfpathmoveto{\pgfpoint{147.664062pt}{64.188232pt}}
+\pgflineto{\pgfpoint{146.453125pt}{64.188232pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{148.875000pt}{125.552933pt}}
-\pgflineto{\pgfpoint{147.664062pt}{65.147049pt}}
+\pgfpathmoveto{\pgfpoint{148.875000pt}{127.470581pt}}
+\pgflineto{\pgfpoint{147.664062pt}{64.188232pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{150.085938pt}{127.470581pt}}
-\pgflineto{\pgfpoint{148.875000pt}{125.552933pt}}
+\pgfpathmoveto{\pgfpoint{150.085938pt}{128.429398pt}}
+\pgflineto{\pgfpoint{148.875000pt}{127.470581pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{151.296875pt}{127.470581pt}}
-\pgflineto{\pgfpoint{150.085938pt}{127.470581pt}}
+\pgfpathmoveto{\pgfpoint{151.296875pt}{128.429398pt}}
+\pgflineto{\pgfpoint{150.085938pt}{128.429398pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{152.507812pt}{127.470581pt}}
-\pgflineto{\pgfpoint{151.296875pt}{127.470581pt}}
+\pgfpathmoveto{\pgfpoint{152.507812pt}{128.429398pt}}
+\pgflineto{\pgfpoint{151.296875pt}{128.429398pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{153.718750pt}{127.470581pt}}
-\pgflineto{\pgfpoint{152.507812pt}{127.470581pt}}
+\pgfpathmoveto{\pgfpoint{153.718750pt}{128.429398pt}}
+\pgflineto{\pgfpoint{152.507812pt}{128.429398pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{154.929688pt}{127.470581pt}}
-\pgflineto{\pgfpoint{153.718750pt}{127.470581pt}}
+\pgfpathmoveto{\pgfpoint{154.929688pt}{128.429398pt}}
+\pgflineto{\pgfpoint{153.718750pt}{128.429398pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{156.140625pt}{127.470581pt}}
-\pgflineto{\pgfpoint{154.929688pt}{127.470581pt}}
+\pgfpathmoveto{\pgfpoint{156.140625pt}{128.429398pt}}
+\pgflineto{\pgfpoint{154.929688pt}{128.429398pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{157.351562pt}{127.470581pt}}
-\pgflineto{\pgfpoint{156.140625pt}{127.470581pt}}
+\pgfpathmoveto{\pgfpoint{157.351562pt}{128.429398pt}}
+\pgflineto{\pgfpoint{156.140625pt}{128.429398pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{158.562500pt}{127.470581pt}}
-\pgflineto{\pgfpoint{157.351562pt}{127.470581pt}}
+\pgfpathmoveto{\pgfpoint{158.562500pt}{128.429398pt}}
+\pgflineto{\pgfpoint{157.351562pt}{128.429398pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{159.773438pt}{127.470581pt}}
-\pgflineto{\pgfpoint{158.562500pt}{127.470581pt}}
+\pgfpathmoveto{\pgfpoint{159.773438pt}{128.429398pt}}
+\pgflineto{\pgfpoint{158.562500pt}{128.429398pt}}
 \pgfusepath{stroke}
 \pgfpathmoveto{\pgfpoint{160.984375pt}{73.776466pt}}
-\pgflineto{\pgfpoint{159.773438pt}{127.470581pt}}
+\pgflineto{\pgfpoint{159.773438pt}{128.429398pt}}
 \pgfusepath{stroke}
 \pgfpathmoveto{\pgfpoint{162.195312pt}{73.776466pt}}
 \pgflineto{\pgfpoint{160.984375pt}{73.776466pt}}
 \pgfpathmoveto{\pgfpoint{167.039062pt}{66.105881pt}}
 \pgflineto{\pgfpoint{165.828125pt}{73.776466pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{168.249985pt}{87.199997pt}}
+\pgfpathmoveto{\pgfpoint{168.249985pt}{86.241173pt}}
 \pgflineto{\pgfpoint{167.039062pt}{66.105881pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{169.460922pt}{116.923523pt}}
-\pgflineto{\pgfpoint{168.249985pt}{87.199997pt}}
+\pgfpathmoveto{\pgfpoint{169.460922pt}{117.882347pt}}
+\pgflineto{\pgfpoint{168.249985pt}{86.241173pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{170.671875pt}{116.923523pt}}
-\pgflineto{\pgfpoint{169.460922pt}{116.923523pt}}
+\pgfpathmoveto{\pgfpoint{170.671875pt}{117.882347pt}}
+\pgflineto{\pgfpoint{169.460922pt}{117.882347pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{171.882812pt}{116.923523pt}}
-\pgflineto{\pgfpoint{170.671875pt}{116.923523pt}}
+\pgfpathmoveto{\pgfpoint{171.882812pt}{117.882347pt}}
+\pgflineto{\pgfpoint{170.671875pt}{117.882347pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{173.093750pt}{116.923523pt}}
-\pgflineto{\pgfpoint{171.882812pt}{116.923523pt}}
+\pgfpathmoveto{\pgfpoint{173.093750pt}{117.882347pt}}
+\pgflineto{\pgfpoint{171.882812pt}{117.882347pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{174.304672pt}{116.923523pt}}
-\pgflineto{\pgfpoint{173.093750pt}{116.923523pt}}
+\pgfpathmoveto{\pgfpoint{174.304672pt}{117.882347pt}}
+\pgflineto{\pgfpoint{173.093750pt}{117.882347pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{175.515610pt}{116.923523pt}}
-\pgflineto{\pgfpoint{174.304672pt}{116.923523pt}}
+\pgfpathmoveto{\pgfpoint{175.515610pt}{117.882347pt}}
+\pgflineto{\pgfpoint{174.304672pt}{117.882347pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{176.726562pt}{122.676468pt}}
-\pgflineto{\pgfpoint{175.515610pt}{116.923523pt}}
+\pgfpathmoveto{\pgfpoint{176.726562pt}{123.635284pt}}
+\pgflineto{\pgfpoint{175.515610pt}{117.882347pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{177.937500pt}{103.500000pt}}
-\pgflineto{\pgfpoint{176.726562pt}{122.676468pt}}
+\pgfpathmoveto{\pgfpoint{177.937500pt}{102.541176pt}}
+\pgflineto{\pgfpoint{176.726562pt}{123.635284pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{179.148438pt}{99.664703pt}}
-\pgflineto{\pgfpoint{177.937500pt}{103.500000pt}}
+\pgfpathmoveto{\pgfpoint{179.148438pt}{98.705879pt}}
+\pgflineto{\pgfpoint{177.937500pt}{102.541176pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{180.359360pt}{109.252930pt}}
-\pgflineto{\pgfpoint{179.148438pt}{99.664703pt}}
+\pgfpathmoveto{\pgfpoint{180.359360pt}{111.170578pt}}
+\pgflineto{\pgfpoint{179.148438pt}{98.705879pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{181.570297pt}{109.252930pt}}
-\pgflineto{\pgfpoint{180.359360pt}{109.252930pt}}
+\pgfpathmoveto{\pgfpoint{181.570297pt}{111.170578pt}}
+\pgflineto{\pgfpoint{180.359360pt}{111.170578pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{182.781250pt}{109.252930pt}}
-\pgflineto{\pgfpoint{181.570297pt}{109.252930pt}}
+\pgfpathmoveto{\pgfpoint{182.781250pt}{111.170578pt}}
+\pgflineto{\pgfpoint{181.570297pt}{111.170578pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{183.992188pt}{109.252930pt}}
-\pgflineto{\pgfpoint{182.781250pt}{109.252930pt}}
+\pgfpathmoveto{\pgfpoint{183.992188pt}{111.170578pt}}
+\pgflineto{\pgfpoint{182.781250pt}{111.170578pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{185.203125pt}{109.252930pt}}
-\pgflineto{\pgfpoint{183.992188pt}{109.252930pt}}
+\pgfpathmoveto{\pgfpoint{185.203125pt}{111.170578pt}}
+\pgflineto{\pgfpoint{183.992188pt}{111.170578pt}}
 \pgfusepath{stroke}
 \pgfpathmoveto{\pgfpoint{186.414047pt}{90.076462pt}}
-\pgflineto{\pgfpoint{185.203125pt}{109.252930pt}}
+\pgflineto{\pgfpoint{185.203125pt}{111.170578pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{187.624985pt}{109.252930pt}}
+\pgfpathmoveto{\pgfpoint{187.624985pt}{111.170578pt}}
 \pgflineto{\pgfpoint{186.414047pt}{90.076462pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{188.835938pt}{88.158813pt}}
-\pgflineto{\pgfpoint{187.624985pt}{109.252930pt}}
+\pgfpathmoveto{\pgfpoint{188.835938pt}{89.117630pt}}
+\pgflineto{\pgfpoint{187.624985pt}{111.170578pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{190.046875pt}{88.158813pt}}
-\pgflineto{\pgfpoint{188.835938pt}{88.158813pt}}
+\pgfpathmoveto{\pgfpoint{190.046875pt}{89.117630pt}}
+\pgflineto{\pgfpoint{188.835938pt}{89.117630pt}}
 \pgfusepath{stroke}
 \pgfpathmoveto{\pgfpoint{191.257812pt}{77.611755pt}}
-\pgflineto{\pgfpoint{190.046875pt}{88.158813pt}}
+\pgflineto{\pgfpoint{190.046875pt}{89.117630pt}}
 \pgfusepath{stroke}
 \pgfpathmoveto{\pgfpoint{192.468735pt}{77.611755pt}}
 \pgflineto{\pgfpoint{191.257812pt}{77.611755pt}}
 \pgfpathmoveto{\pgfpoint{209.421875pt}{124.594101pt}}
 \pgflineto{\pgfpoint{208.210938pt}{124.594101pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{210.632797pt}{57.476460pt}}
+\pgfpathmoveto{\pgfpoint{210.632797pt}{56.517643pt}}
 \pgflineto{\pgfpoint{209.421875pt}{124.594101pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{211.843735pt}{57.476460pt}}
-\pgflineto{\pgfpoint{210.632797pt}{57.476460pt}}
+\pgfpathmoveto{\pgfpoint{211.843735pt}{56.517643pt}}
+\pgflineto{\pgfpoint{210.632797pt}{56.517643pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{213.054688pt}{57.476460pt}}
-\pgflineto{\pgfpoint{211.843735pt}{57.476460pt}}
+\pgfpathmoveto{\pgfpoint{213.054688pt}{56.517643pt}}
+\pgflineto{\pgfpoint{211.843735pt}{56.517643pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{214.265625pt}{57.476460pt}}
-\pgflineto{\pgfpoint{213.054688pt}{57.476460pt}}
+\pgfpathmoveto{\pgfpoint{214.265625pt}{56.517643pt}}
+\pgflineto{\pgfpoint{213.054688pt}{56.517643pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{215.476562pt}{57.476460pt}}
-\pgflineto{\pgfpoint{214.265625pt}{57.476460pt}}
+\pgfpathmoveto{\pgfpoint{215.476562pt}{56.517643pt}}
+\pgflineto{\pgfpoint{214.265625pt}{56.517643pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{216.687485pt}{57.476460pt}}
-\pgflineto{\pgfpoint{215.476562pt}{57.476460pt}}
+\pgfpathmoveto{\pgfpoint{216.687485pt}{56.517643pt}}
+\pgflineto{\pgfpoint{215.476562pt}{56.517643pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{217.898422pt}{57.476460pt}}
-\pgflineto{\pgfpoint{216.687485pt}{57.476460pt}}
+\pgfpathmoveto{\pgfpoint{217.898422pt}{56.517643pt}}
+\pgflineto{\pgfpoint{216.687485pt}{56.517643pt}}
 \pgfusepath{stroke}
 \pgfpathmoveto{\pgfpoint{219.109375pt}{71.858818pt}}
-\pgflineto{\pgfpoint{217.898422pt}{57.476460pt}}
+\pgflineto{\pgfpoint{217.898422pt}{56.517643pt}}
 \pgfusepath{stroke}
 \pgfpathmoveto{\pgfpoint{220.320312pt}{71.858818pt}}
 \pgflineto{\pgfpoint{219.109375pt}{71.858818pt}}
 \pgfpathmoveto{\pgfpoint{221.531250pt}{131.305878pt}}
 \pgflineto{\pgfpoint{220.320312pt}{71.858818pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{222.742172pt}{131.305878pt}}
+\pgfpathmoveto{\pgfpoint{222.742172pt}{132.264694pt}}
 \pgflineto{\pgfpoint{221.531250pt}{131.305878pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{223.953110pt}{131.305878pt}}
-\pgflineto{\pgfpoint{222.742172pt}{131.305878pt}}
+\pgfpathmoveto{\pgfpoint{223.953110pt}{132.264694pt}}
+\pgflineto{\pgfpoint{222.742172pt}{132.264694pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{225.164062pt}{131.305878pt}}
-\pgflineto{\pgfpoint{223.953110pt}{131.305878pt}}
+\pgfpathmoveto{\pgfpoint{225.164062pt}{132.264694pt}}
+\pgflineto{\pgfpoint{223.953110pt}{132.264694pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{226.375000pt}{131.305878pt}}
-\pgflineto{\pgfpoint{225.164062pt}{131.305878pt}}
+\pgfpathmoveto{\pgfpoint{226.375000pt}{132.264694pt}}
+\pgflineto{\pgfpoint{225.164062pt}{132.264694pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{227.585938pt}{131.305878pt}}
-\pgflineto{\pgfpoint{226.375000pt}{131.305878pt}}
+\pgfpathmoveto{\pgfpoint{227.585938pt}{132.264694pt}}
+\pgflineto{\pgfpoint{226.375000pt}{132.264694pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{228.796860pt}{131.305878pt}}
-\pgflineto{\pgfpoint{227.585938pt}{131.305878pt}}
+\pgfpathmoveto{\pgfpoint{228.796860pt}{132.264694pt}}
+\pgflineto{\pgfpoint{227.585938pt}{132.264694pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{230.007797pt}{110.211754pt}}
-\pgflineto{\pgfpoint{228.796860pt}{131.305878pt}}
+\pgfpathmoveto{\pgfpoint{230.007797pt}{111.170578pt}}
+\pgflineto{\pgfpoint{228.796860pt}{132.264694pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{231.218750pt}{67.064697pt}}
-\pgflineto{\pgfpoint{230.007797pt}{110.211754pt}}
+\pgfpathmoveto{\pgfpoint{231.218750pt}{66.105881pt}}
+\pgflineto{\pgfpoint{230.007797pt}{111.170578pt}}
 \pgfusepath{stroke}
 \pgfpathmoveto{\pgfpoint{232.429688pt}{63.229404pt}}
-\pgflineto{\pgfpoint{231.218750pt}{67.064697pt}}
+\pgflineto{\pgfpoint{231.218750pt}{66.105881pt}}
 \pgfusepath{stroke}
 \pgfpathmoveto{\pgfpoint{233.640625pt}{63.229404pt}}
 \pgflineto{\pgfpoint{232.429688pt}{63.229404pt}}
 \pgfpathmoveto{\pgfpoint{237.273438pt}{63.229404pt}}
 \pgflineto{\pgfpoint{236.062500pt}{63.229404pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{238.484375pt}{70.899994pt}}
+\pgfpathmoveto{\pgfpoint{238.484375pt}{69.941170pt}}
 \pgflineto{\pgfpoint{237.273438pt}{63.229404pt}}
 \pgfusepath{stroke}
 \pgfpathmoveto{\pgfpoint{239.695312pt}{72.817642pt}}
-\pgflineto{\pgfpoint{238.484375pt}{70.899994pt}}
+\pgflineto{\pgfpoint{238.484375pt}{69.941170pt}}
 \pgfusepath{stroke}
 \pgfpathmoveto{\pgfpoint{240.906235pt}{72.817642pt}}
 \pgflineto{\pgfpoint{239.695312pt}{72.817642pt}}
 \pgfpathmoveto{\pgfpoint{244.539062pt}{130.347046pt}}
 \pgflineto{\pgfpoint{243.328125pt}{130.347046pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{245.750000pt}{137.058823pt}}
+\pgfpathmoveto{\pgfpoint{245.750000pt}{138.976471pt}}
 \pgflineto{\pgfpoint{244.539062pt}{130.347046pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{246.960922pt}{137.058823pt}}
-\pgflineto{\pgfpoint{245.750000pt}{137.058823pt}}
+\pgfpathmoveto{\pgfpoint{246.960922pt}{138.976471pt}}
+\pgflineto{\pgfpoint{245.750000pt}{138.976471pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{248.171875pt}{137.058823pt}}
-\pgflineto{\pgfpoint{246.960922pt}{137.058823pt}}
+\pgfpathmoveto{\pgfpoint{248.171875pt}{138.976471pt}}
+\pgflineto{\pgfpoint{246.960922pt}{138.976471pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{249.382812pt}{137.058823pt}}
-\pgflineto{\pgfpoint{248.171875pt}{137.058823pt}}
+\pgfpathmoveto{\pgfpoint{249.382812pt}{138.976471pt}}
+\pgflineto{\pgfpoint{248.171875pt}{138.976471pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{250.593750pt}{137.058823pt}}
-\pgflineto{\pgfpoint{249.382812pt}{137.058823pt}}
+\pgfpathmoveto{\pgfpoint{250.593750pt}{138.976471pt}}
+\pgflineto{\pgfpoint{249.382812pt}{138.976471pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{251.804672pt}{137.058823pt}}
-\pgflineto{\pgfpoint{250.593750pt}{137.058823pt}}
+\pgfpathmoveto{\pgfpoint{251.804672pt}{138.976471pt}}
+\pgflineto{\pgfpoint{250.593750pt}{138.976471pt}}
 \pgfusepath{stroke}
 \pgfpathmoveto{\pgfpoint{253.015610pt}{118.841171pt}}
-\pgflineto{\pgfpoint{251.804672pt}{137.058823pt}}
+\pgflineto{\pgfpoint{251.804672pt}{138.976471pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{254.226562pt}{85.282349pt}}
+\pgfpathmoveto{\pgfpoint{254.226562pt}{88.158813pt}}
 \pgflineto{\pgfpoint{253.015610pt}{118.841171pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{255.437500pt}{69.941170pt}}
-\pgflineto{\pgfpoint{254.226562pt}{85.282349pt}}
+\pgfpathmoveto{\pgfpoint{255.437500pt}{68.982346pt}}
+\pgflineto{\pgfpoint{254.226562pt}{88.158813pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{256.648438pt}{69.941170pt}}
-\pgflineto{\pgfpoint{255.437500pt}{69.941170pt}}
+\pgfpathmoveto{\pgfpoint{256.648438pt}{68.982346pt}}
+\pgflineto{\pgfpoint{255.437500pt}{68.982346pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{257.859375pt}{69.941170pt}}
-\pgflineto{\pgfpoint{256.648438pt}{69.941170pt}}
+\pgfpathmoveto{\pgfpoint{257.859375pt}{68.982346pt}}
+\pgflineto{\pgfpoint{256.648438pt}{68.982346pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{259.070312pt}{69.941170pt}}
-\pgflineto{\pgfpoint{257.859375pt}{69.941170pt}}
+\pgfpathmoveto{\pgfpoint{259.070312pt}{68.982346pt}}
+\pgflineto{\pgfpoint{257.859375pt}{68.982346pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{260.281250pt}{69.941170pt}}
-\pgflineto{\pgfpoint{259.070312pt}{69.941170pt}}
+\pgfpathmoveto{\pgfpoint{260.281250pt}{68.982346pt}}
+\pgflineto{\pgfpoint{259.070312pt}{68.982346pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{261.492188pt}{69.941170pt}}
-\pgflineto{\pgfpoint{260.281250pt}{69.941170pt}}
+\pgfpathmoveto{\pgfpoint{261.492188pt}{68.982346pt}}
+\pgflineto{\pgfpoint{260.281250pt}{68.982346pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{262.703125pt}{69.941170pt}}
-\pgflineto{\pgfpoint{261.492188pt}{69.941170pt}}
+\pgfpathmoveto{\pgfpoint{262.703125pt}{68.982346pt}}
+\pgflineto{\pgfpoint{261.492188pt}{68.982346pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{263.914062pt}{120.758820pt}}
-\pgflineto{\pgfpoint{262.703125pt}{69.941170pt}}
+\pgfpathmoveto{\pgfpoint{263.914062pt}{119.799995pt}}
+\pgflineto{\pgfpoint{262.703125pt}{68.982346pt}}
 \pgfusepath{stroke}
 \pgfpathmoveto{\pgfpoint{265.125000pt}{126.511749pt}}
-\pgflineto{\pgfpoint{263.914062pt}{120.758820pt}}
+\pgflineto{\pgfpoint{263.914062pt}{119.799995pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{266.335938pt}{126.511749pt}}
+\pgfpathmoveto{\pgfpoint{266.335938pt}{128.429398pt}}
 \pgflineto{\pgfpoint{265.125000pt}{126.511749pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{267.546875pt}{126.511749pt}}
-\pgflineto{\pgfpoint{266.335938pt}{126.511749pt}}
+\pgfpathmoveto{\pgfpoint{267.546875pt}{128.429398pt}}
+\pgflineto{\pgfpoint{266.335938pt}{128.429398pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{268.757812pt}{126.511749pt}}
-\pgflineto{\pgfpoint{267.546875pt}{126.511749pt}}
+\pgfpathmoveto{\pgfpoint{268.757812pt}{128.429398pt}}
+\pgflineto{\pgfpoint{267.546875pt}{128.429398pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{269.968750pt}{126.511749pt}}
-\pgflineto{\pgfpoint{268.757812pt}{126.511749pt}}
+\pgfpathmoveto{\pgfpoint{269.968750pt}{128.429398pt}}
+\pgflineto{\pgfpoint{268.757812pt}{128.429398pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{271.179688pt}{126.511749pt}}
-\pgflineto{\pgfpoint{269.968750pt}{126.511749pt}}
+\pgfpathmoveto{\pgfpoint{271.179688pt}{128.429398pt}}
+\pgflineto{\pgfpoint{269.968750pt}{128.429398pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{272.390625pt}{126.511749pt}}
-\pgflineto{\pgfpoint{271.179688pt}{126.511749pt}}
+\pgfpathmoveto{\pgfpoint{272.390625pt}{128.429398pt}}
+\pgflineto{\pgfpoint{271.179688pt}{128.429398pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{273.601562pt}{126.511749pt}}
-\pgflineto{\pgfpoint{272.390625pt}{126.511749pt}}
+\pgfpathmoveto{\pgfpoint{273.601562pt}{128.429398pt}}
+\pgflineto{\pgfpoint{272.390625pt}{128.429398pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{274.812500pt}{109.252930pt}}
-\pgflineto{\pgfpoint{273.601562pt}{126.511749pt}}
+\pgfpathmoveto{\pgfpoint{274.812500pt}{112.129402pt}}
+\pgflineto{\pgfpoint{273.601562pt}{128.429398pt}}
 \pgfusepath{stroke}
 \pgfpathmoveto{\pgfpoint{276.023438pt}{100.623528pt}}
-\pgflineto{\pgfpoint{274.812500pt}{109.252930pt}}
+\pgflineto{\pgfpoint{274.812500pt}{112.129402pt}}
 \pgfusepath{stroke}
 \pgfpathmoveto{\pgfpoint{277.234375pt}{100.623528pt}}
 \pgflineto{\pgfpoint{276.023438pt}{100.623528pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{278.445312pt}{65.147049pt}}
+\pgfpathmoveto{\pgfpoint{278.445312pt}{64.188232pt}}
 \pgflineto{\pgfpoint{277.234375pt}{100.623528pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{279.656250pt}{65.147049pt}}
-\pgflineto{\pgfpoint{278.445312pt}{65.147049pt}}
+\pgfpathmoveto{\pgfpoint{279.656250pt}{64.188232pt}}
+\pgflineto{\pgfpoint{278.445312pt}{64.188232pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{280.867188pt}{65.147049pt}}
-\pgflineto{\pgfpoint{279.656250pt}{65.147049pt}}
+\pgfpathmoveto{\pgfpoint{280.867188pt}{64.188232pt}}
+\pgflineto{\pgfpoint{279.656250pt}{64.188232pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{282.078125pt}{65.147049pt}}
-\pgflineto{\pgfpoint{280.867188pt}{65.147049pt}}
+\pgfpathmoveto{\pgfpoint{282.078125pt}{64.188232pt}}
+\pgflineto{\pgfpoint{280.867188pt}{64.188232pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{283.289062pt}{65.147049pt}}
-\pgflineto{\pgfpoint{282.078125pt}{65.147049pt}}
+\pgfpathmoveto{\pgfpoint{283.289062pt}{64.188232pt}}
+\pgflineto{\pgfpoint{282.078125pt}{64.188232pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{284.499969pt}{65.147049pt}}
-\pgflineto{\pgfpoint{283.289062pt}{65.147049pt}}
+\pgfpathmoveto{\pgfpoint{284.499969pt}{64.188232pt}}
+\pgflineto{\pgfpoint{283.289062pt}{64.188232pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{285.710938pt}{134.182343pt}}
-\pgflineto{\pgfpoint{284.499969pt}{65.147049pt}}
+\pgfpathmoveto{\pgfpoint{285.710938pt}{135.141174pt}}
+\pgflineto{\pgfpoint{284.499969pt}{64.188232pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{286.921875pt}{134.182343pt}}
-\pgflineto{\pgfpoint{285.710938pt}{134.182343pt}}
+\pgfpathmoveto{\pgfpoint{286.921875pt}{135.141174pt}}
+\pgflineto{\pgfpoint{285.710938pt}{135.141174pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{288.132812pt}{134.182343pt}}
-\pgflineto{\pgfpoint{286.921875pt}{134.182343pt}}
+\pgfpathmoveto{\pgfpoint{288.132812pt}{135.141174pt}}
+\pgflineto{\pgfpoint{286.921875pt}{135.141174pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{289.343750pt}{134.182343pt}}
-\pgflineto{\pgfpoint{288.132812pt}{134.182343pt}}
+\pgfpathmoveto{\pgfpoint{289.343750pt}{135.141174pt}}
+\pgflineto{\pgfpoint{288.132812pt}{135.141174pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{290.554657pt}{134.182343pt}}
-\pgflineto{\pgfpoint{289.343750pt}{134.182343pt}}
+\pgfpathmoveto{\pgfpoint{290.554657pt}{135.141174pt}}
+\pgflineto{\pgfpoint{289.343750pt}{135.141174pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{291.765625pt}{134.182343pt}}
-\pgflineto{\pgfpoint{290.554657pt}{134.182343pt}}
+\pgfpathmoveto{\pgfpoint{291.765625pt}{135.141174pt}}
+\pgflineto{\pgfpoint{290.554657pt}{135.141174pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{292.976562pt}{134.182343pt}}
-\pgflineto{\pgfpoint{291.765625pt}{134.182343pt}}
+\pgfpathmoveto{\pgfpoint{292.976562pt}{135.141174pt}}
+\pgflineto{\pgfpoint{291.765625pt}{135.141174pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{294.187500pt}{134.182343pt}}
-\pgflineto{\pgfpoint{292.976562pt}{134.182343pt}}
+\pgfpathmoveto{\pgfpoint{294.187500pt}{135.141174pt}}
+\pgflineto{\pgfpoint{292.976562pt}{135.141174pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{295.398438pt}{55.558819pt}}
-\pgflineto{\pgfpoint{294.187500pt}{134.182343pt}}
+\pgfpathmoveto{\pgfpoint{295.398438pt}{54.599995pt}}
+\pgflineto{\pgfpoint{294.187500pt}{135.141174pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{296.609344pt}{55.558819pt}}
-\pgflineto{\pgfpoint{295.398438pt}{55.558819pt}}
+\pgfpathmoveto{\pgfpoint{296.609344pt}{54.599995pt}}
+\pgflineto{\pgfpoint{295.398438pt}{54.599995pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{297.820312pt}{55.558819pt}}
-\pgflineto{\pgfpoint{296.609344pt}{55.558819pt}}
+\pgfpathmoveto{\pgfpoint{297.820312pt}{54.599995pt}}
+\pgflineto{\pgfpoint{296.609344pt}{54.599995pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{299.031250pt}{55.558819pt}}
-\pgflineto{\pgfpoint{297.820312pt}{55.558819pt}}
+\pgfpathmoveto{\pgfpoint{299.031250pt}{54.599995pt}}
+\pgflineto{\pgfpoint{297.820312pt}{54.599995pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{300.242188pt}{55.558819pt}}
-\pgflineto{\pgfpoint{299.031250pt}{55.558819pt}}
+\pgfpathmoveto{\pgfpoint{300.242188pt}{54.599995pt}}
+\pgflineto{\pgfpoint{299.031250pt}{54.599995pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{301.453125pt}{55.558819pt}}
-\pgflineto{\pgfpoint{300.242188pt}{55.558819pt}}
+\pgfpathmoveto{\pgfpoint{301.453125pt}{54.599995pt}}
+\pgflineto{\pgfpoint{300.242188pt}{54.599995pt}}
 \pgfusepath{stroke}
 \pgfpathmoveto{\pgfpoint{302.664032pt}{57.476460pt}}
-\pgflineto{\pgfpoint{301.453125pt}{55.558819pt}}
+\pgflineto{\pgfpoint{301.453125pt}{54.599995pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{303.875000pt}{55.558819pt}}
+\pgfpathmoveto{\pgfpoint{303.875000pt}{54.599995pt}}
 \pgflineto{\pgfpoint{302.664032pt}{57.476460pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{305.085938pt}{83.364700pt}}
-\pgflineto{\pgfpoint{303.875000pt}{55.558819pt}}
+\pgfpathmoveto{\pgfpoint{305.085938pt}{82.405876pt}}
+\pgflineto{\pgfpoint{303.875000pt}{54.599995pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{306.296875pt}{83.364700pt}}
-\pgflineto{\pgfpoint{305.085938pt}{83.364700pt}}
+\pgfpathmoveto{\pgfpoint{306.296875pt}{82.405876pt}}
+\pgflineto{\pgfpoint{305.085938pt}{82.405876pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{307.507812pt}{120.758820pt}}
-\pgflineto{\pgfpoint{306.296875pt}{83.364700pt}}
+\pgfpathmoveto{\pgfpoint{307.507812pt}{121.717644pt}}
+\pgflineto{\pgfpoint{306.296875pt}{82.405876pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{308.718719pt}{120.758820pt}}
-\pgflineto{\pgfpoint{307.507812pt}{120.758820pt}}
+\pgfpathmoveto{\pgfpoint{308.718719pt}{121.717644pt}}
+\pgflineto{\pgfpoint{307.507812pt}{121.717644pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{309.929688pt}{120.758820pt}}
-\pgflineto{\pgfpoint{308.718719pt}{120.758820pt}}
+\pgfpathmoveto{\pgfpoint{309.929688pt}{121.717644pt}}
+\pgflineto{\pgfpoint{308.718719pt}{121.717644pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{311.140625pt}{120.758820pt}}
-\pgflineto{\pgfpoint{309.929688pt}{120.758820pt}}
+\pgfpathmoveto{\pgfpoint{311.140625pt}{121.717644pt}}
+\pgflineto{\pgfpoint{309.929688pt}{121.717644pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{312.351562pt}{110.211754pt}}
-\pgflineto{\pgfpoint{311.140625pt}{120.758820pt}}
+\pgfpathmoveto{\pgfpoint{312.351562pt}{111.170578pt}}
+\pgflineto{\pgfpoint{311.140625pt}{121.717644pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{313.562500pt}{110.211754pt}}
-\pgflineto{\pgfpoint{312.351562pt}{110.211754pt}}
+\pgfpathmoveto{\pgfpoint{313.562500pt}{111.170578pt}}
+\pgflineto{\pgfpoint{312.351562pt}{111.170578pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{314.773407pt}{64.188232pt}}
-\pgflineto{\pgfpoint{313.562500pt}{110.211754pt}}
+\pgfpathmoveto{\pgfpoint{314.773407pt}{63.229404pt}}
+\pgflineto{\pgfpoint{313.562500pt}{111.170578pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{315.984375pt}{64.188232pt}}
-\pgflineto{\pgfpoint{314.773407pt}{64.188232pt}}
+\pgfpathmoveto{\pgfpoint{315.984375pt}{63.229404pt}}
+\pgflineto{\pgfpoint{314.773407pt}{63.229404pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{317.195312pt}{64.188232pt}}
-\pgflineto{\pgfpoint{315.984375pt}{64.188232pt}}
+\pgfpathmoveto{\pgfpoint{317.195312pt}{63.229404pt}}
+\pgflineto{\pgfpoint{315.984375pt}{63.229404pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{318.406250pt}{64.188232pt}}
-\pgflineto{\pgfpoint{317.195312pt}{64.188232pt}}
+\pgfpathmoveto{\pgfpoint{318.406250pt}{63.229404pt}}
+\pgflineto{\pgfpoint{317.195312pt}{63.229404pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{319.617188pt}{64.188232pt}}
-\pgflineto{\pgfpoint{318.406250pt}{64.188232pt}}
+\pgfpathmoveto{\pgfpoint{319.617188pt}{63.229404pt}}
+\pgflineto{\pgfpoint{318.406250pt}{63.229404pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{320.828094pt}{64.188232pt}}
-\pgflineto{\pgfpoint{319.617188pt}{64.188232pt}}
+\pgfpathmoveto{\pgfpoint{320.828094pt}{63.229404pt}}
+\pgflineto{\pgfpoint{319.617188pt}{63.229404pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{322.039062pt}{64.188232pt}}
-\pgflineto{\pgfpoint{320.828094pt}{64.188232pt}}
+\pgfpathmoveto{\pgfpoint{322.039062pt}{63.229404pt}}
+\pgflineto{\pgfpoint{320.828094pt}{63.229404pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{323.250000pt}{64.188232pt}}
-\pgflineto{\pgfpoint{322.039062pt}{64.188232pt}}
+\pgfpathmoveto{\pgfpoint{323.250000pt}{63.229404pt}}
+\pgflineto{\pgfpoint{322.039062pt}{63.229404pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{324.460938pt}{64.188232pt}}
-\pgflineto{\pgfpoint{323.250000pt}{64.188232pt}}
+\pgfpathmoveto{\pgfpoint{324.460938pt}{63.229404pt}}
+\pgflineto{\pgfpoint{323.250000pt}{63.229404pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{325.671875pt}{94.870583pt}}
-\pgflineto{\pgfpoint{324.460938pt}{64.188232pt}}
+\pgfpathmoveto{\pgfpoint{325.671875pt}{95.829407pt}}
+\pgflineto{\pgfpoint{324.460938pt}{63.229404pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{326.882782pt}{94.870583pt}}
-\pgflineto{\pgfpoint{325.671875pt}{94.870583pt}}
+\pgfpathmoveto{\pgfpoint{326.882782pt}{95.829407pt}}
+\pgflineto{\pgfpoint{325.671875pt}{95.829407pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{328.093750pt}{94.870583pt}}
-\pgflineto{\pgfpoint{326.882782pt}{94.870583pt}}
+\pgfpathmoveto{\pgfpoint{328.093750pt}{95.829407pt}}
+\pgflineto{\pgfpoint{326.882782pt}{95.829407pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{329.304688pt}{94.870583pt}}
-\pgflineto{\pgfpoint{328.093750pt}{94.870583pt}}
+\pgfpathmoveto{\pgfpoint{329.304688pt}{95.829407pt}}
+\pgflineto{\pgfpoint{328.093750pt}{95.829407pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{330.515625pt}{94.870583pt}}
-\pgflineto{\pgfpoint{329.304688pt}{94.870583pt}}
+\pgfpathmoveto{\pgfpoint{330.515625pt}{95.829407pt}}
+\pgflineto{\pgfpoint{329.304688pt}{95.829407pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{331.726562pt}{94.870583pt}}
-\pgflineto{\pgfpoint{330.515625pt}{94.870583pt}}
+\pgfpathmoveto{\pgfpoint{331.726562pt}{95.829407pt}}
+\pgflineto{\pgfpoint{330.515625pt}{95.829407pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{332.937500pt}{94.870583pt}}
-\pgflineto{\pgfpoint{331.726562pt}{94.870583pt}}
+\pgfpathmoveto{\pgfpoint{332.937500pt}{95.829407pt}}
+\pgflineto{\pgfpoint{331.726562pt}{95.829407pt}}
 \pgfusepath{stroke}
 \pgfpathmoveto{\pgfpoint{334.148438pt}{73.776466pt}}
-\pgflineto{\pgfpoint{332.937500pt}{94.870583pt}}
+\pgflineto{\pgfpoint{332.937500pt}{95.829407pt}}
 \pgfusepath{stroke}
 \pgfpathmoveto{\pgfpoint{335.359375pt}{73.776466pt}}
 \pgflineto{\pgfpoint{334.148438pt}{73.776466pt}}
 \pgfpathmoveto{\pgfpoint{340.203125pt}{73.776466pt}}
 \pgflineto{\pgfpoint{338.992188pt}{73.776466pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{341.414062pt}{105.417648pt}}
+\pgfpathmoveto{\pgfpoint{341.414062pt}{107.335281pt}}
 \pgflineto{\pgfpoint{340.203125pt}{73.776466pt}}
 \pgfusepath{stroke}
 \pgfpathmoveto{\pgfpoint{342.625000pt}{73.776466pt}}
-\pgflineto{\pgfpoint{341.414062pt}{105.417648pt}}
+\pgflineto{\pgfpoint{341.414062pt}{107.335281pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{343.835938pt}{120.758820pt}}
+\pgfpathmoveto{\pgfpoint{343.835938pt}{121.717644pt}}
 \pgflineto{\pgfpoint{342.625000pt}{73.776466pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{345.046875pt}{120.758820pt}}
-\pgflineto{\pgfpoint{343.835938pt}{120.758820pt}}
+\pgfpathmoveto{\pgfpoint{345.046875pt}{121.717644pt}}
+\pgflineto{\pgfpoint{343.835938pt}{121.717644pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{346.257812pt}{120.758820pt}}
-\pgflineto{\pgfpoint{345.046875pt}{120.758820pt}}
+\pgfpathmoveto{\pgfpoint{346.257812pt}{121.717644pt}}
+\pgflineto{\pgfpoint{345.046875pt}{121.717644pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{347.468750pt}{120.758820pt}}
-\pgflineto{\pgfpoint{346.257812pt}{120.758820pt}}
+\pgfpathmoveto{\pgfpoint{347.468750pt}{121.717644pt}}
+\pgflineto{\pgfpoint{346.257812pt}{121.717644pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{348.679688pt}{120.758820pt}}
-\pgflineto{\pgfpoint{347.468750pt}{120.758820pt}}
+\pgfpathmoveto{\pgfpoint{348.679688pt}{121.717644pt}}
+\pgflineto{\pgfpoint{347.468750pt}{121.717644pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{349.890625pt}{120.758820pt}}
-\pgflineto{\pgfpoint{348.679688pt}{120.758820pt}}
+\pgfpathmoveto{\pgfpoint{349.890625pt}{121.717644pt}}
+\pgflineto{\pgfpoint{348.679688pt}{121.717644pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{351.101562pt}{103.500000pt}}
-\pgflineto{\pgfpoint{349.890625pt}{120.758820pt}}
+\pgfpathmoveto{\pgfpoint{351.101562pt}{104.458824pt}}
+\pgflineto{\pgfpoint{349.890625pt}{121.717644pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{352.312500pt}{59.394108pt}}
-\pgflineto{\pgfpoint{351.101562pt}{103.500000pt}}
+\pgfpathmoveto{\pgfpoint{352.312500pt}{58.435284pt}}
+\pgflineto{\pgfpoint{351.101562pt}{104.458824pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{353.523438pt}{59.394108pt}}
-\pgflineto{\pgfpoint{352.312500pt}{59.394108pt}}
+\pgfpathmoveto{\pgfpoint{353.523438pt}{58.435284pt}}
+\pgflineto{\pgfpoint{352.312500pt}{58.435284pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{354.734375pt}{59.394108pt}}
-\pgflineto{\pgfpoint{353.523438pt}{59.394108pt}}
+\pgfpathmoveto{\pgfpoint{354.734375pt}{58.435284pt}}
+\pgflineto{\pgfpoint{353.523438pt}{58.435284pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{355.945312pt}{59.394108pt}}
-\pgflineto{\pgfpoint{354.734375pt}{59.394108pt}}
+\pgfpathmoveto{\pgfpoint{355.945312pt}{58.435284pt}}
+\pgflineto{\pgfpoint{354.734375pt}{58.435284pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{357.156250pt}{59.394108pt}}
-\pgflineto{\pgfpoint{355.945312pt}{59.394108pt}}
+\pgfpathmoveto{\pgfpoint{357.156250pt}{58.435284pt}}
+\pgflineto{\pgfpoint{355.945312pt}{58.435284pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{358.367188pt}{59.394108pt}}
-\pgflineto{\pgfpoint{357.156250pt}{59.394108pt}}
+\pgfpathmoveto{\pgfpoint{358.367188pt}{58.435284pt}}
+\pgflineto{\pgfpoint{357.156250pt}{58.435284pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{359.578125pt}{59.394108pt}}
-\pgflineto{\pgfpoint{358.367188pt}{59.394108pt}}
+\pgfpathmoveto{\pgfpoint{359.578125pt}{58.435284pt}}
+\pgflineto{\pgfpoint{358.367188pt}{58.435284pt}}
 \pgfusepath{stroke}
-\pgfpathmoveto{\pgfpoint{360.789062pt}{59.394108pt}}
-\pgflineto{\pgfpoint{359.578125pt}{59.394108pt}}
+\pgfpathmoveto{\pgfpoint{360.789062pt}{58.435284pt}}
+\pgflineto{\pgfpoint{359.578125pt}{58.435284pt}}
 \pgfusepath{stroke}
 \pgfpathmoveto{\pgfpoint{362.000000pt}{67.064697pt}}
-\pgflineto{\pgfpoint{360.789062pt}{59.394108pt}}
+\pgflineto{\pgfpoint{360.789062pt}{58.435284pt}}
 \pgfusepath{stroke}
 \color[rgb]{0.000000,0.000000,1.000000}
 \pgfpathmoveto{\pgfpoint{54.421875pt}{71.858818pt}}
 \pgfnode{rectangle}{west}{\fontsize{9}{0}\selectfont\textcolor[rgb]{0,0,0}{{Anisotropic TV, $\beta$ = 15000            }}}{}{\pgfusepath{discard}}}
 {
 \pgftransformshift{\pgfpoint{234.619247pt}{173.254150pt}}
-\pgfnode{rectangle}{west}{\fontsize{9}{0}\selectfont\textcolor[rgb]{0,0,0}{{Anisotropic TV, $\beta$ = 21450}}}{}{\pgfusepath{discard}}}
+\pgfnode{rectangle}{west}{\fontsize{9}{0}\selectfont\textcolor[rgb]{0,0,0}{{Anisotropic TV, $\beta$ = 20970}}}{}{\pgfusepath{discard}}}
 {
 \pgftransformshift{\pgfpoint{234.619247pt}{166.270111pt}}
 \pgfnode{rectangle}{west}{\fontsize{9}{0}\selectfont\textcolor[rgb]{0,0,0}{{Isotropic TV}}}{}{\pgfusepath{discard}}}
index f13456bca9d2ffa13cf48576b8f63497aa19f7f4..41ef3cd92c424311a54f0a33aa29c4c912542f4d 100644 (file)
@@ -22,7 +22,7 @@ files = {
             's': [3],
             'r': [10, 20],
             'n': [32],
-            'b': [15000, 21450],
+            'b': [15000, 20970],
             'g': [150, 1000000000000]
             },
         #time ./sobel -p 2 -n 32 -r 10 -s 3 -b 15000 -g 100000000000
@@ -35,7 +35,7 @@ files = {
             's': [0.2, 2],
             'r': [4, 15],
             'n': [8],
-            'b': [5000],
+            'b': [10000],
             'g': [100]
             },
 
@@ -202,12 +202,14 @@ def main():
         # Restore
         rfiles = []
         mfiles = []
+        pngs   = []
         for of, nf in nfiles:
             for p, n, b, g, r, s in itertools.product(files[of]['p'],
                     files[of]['n'], files[of]['b'], files[of]['g'],
                     files[of]['r'], files[of]['s']):
                 rf, rlist = restoreRule(f, nf, p, n, b, g, r, s)
                 rfiles.append(rf)
+                pngs.extend(rlist)
                 print
                 # Method noise
                 mf = methodRule(f, nf, rf, 127, 30)
@@ -215,13 +217,13 @@ def main():
                 print
 
         alle.extend(rfiles)
-        alle.extend(rlist)
         alle.extend(mfiles)
 
         nameRule(f, toPNG(
             [f + "/" + files[f]['orig']] +
             rfiles +
             mfiles +
+            pngs +
             map(lambda x: x[1], nfiles)))
         print
 
diff --git a/fig/fiddle.png b/fig/fiddle.png
new file mode 100644 (file)
index 0000000..f9bfee0
Binary files /dev/null and b/fig/fiddle.png differ
index fdb00cf9ad84284aa2aff31636b84c11476fa3d7..6ce490bc893e59b12dcec0f36c84b0bd37dd3063 100644 (file)
 \chapter{Introduction}
 
-In everyday life cameras are used to capture a moment and save it for
-eternity, but imaging technology technology can be used in many other
-contexts, including medical and astronomical applications.
-With the advent of computers, tasks previously reserved for the human
-brain, like recognizing textures, detecting edges and inferring shapes
-and motion, can now be performed algorithmically. The background of
-these methods span several fields, including psychology and biology for
-the study of human vision, statistics and analysis for the mathematical
-foundations, and computer science for the implementation and performance
-analysis.
-
-It is possible to roughly spread the tasks of image processing out along
-a line spanning from the raw capturing of light coming into the camera,
-a purely physical problem, to the computer vision
-methods in the other end, semantically interpreting the scene,
-recognizing objects, their position and their movement. In between we
-have algorithms working on the captured image, without implying too much
-about what the image contains. These methods are often categorized as
-\emph{early vision} and includes but is not limited to image
-restoration, segmentation, filtering and edge detection.
-
-In the process of capturing the image with our physical apparatus,
-there is always some noise included. Some might come from the physical
-nature of how light travels from the scene to the objective, while some
-might result from inaccuracies in the construction of the capturing
-apparatus. These noise-inducing processes can be studied, and modeled
-mathematically, and the process of image restoration looks at how one
-can remove some---or optimally all---of the noise in the captured
-image. These methods often take into account how we would expect a
-``normal'' image to look in the capturing conditions, and also what
-kinds of noise we expect to be a part of the image.
-
-In the next chapter we will see a short overview of some of the most
-popular methods in image restoration, especially those related to the
-anisotropic total variation based method that will be the focus of the
-rest of the thesis.
-
-In my project work \cite{project}, I described how total variation
-regularization can be performed on a grayscale image using a graph cut
-approach. In this thesis, this method will be expanded upon by
-introducing a more flexible \emph{anisotropic} total variation. The goal
-is to improve how the method behaves around edges and detailed parts of
-the image.
-
-In order to get a good understanding of the method, we will try to
-describe and look into all the different parts needed to make the method work,
-instead of focusing particularly on one piece of the puzzle. The
-continuous formulation and the theorems relating to it are thoroughly
-described, as they are central to how we arrive at our discrete minimizer.
-Next we look at the discretization of the functional, and its different
-approximation errors. The discrete minimizer is found using a graph cut
-approach as in my project work, and the description is similar except
-for some minor changes and a new section on the Boykov--Kolmogorov
-algorithm.
-
-In the end we will through restoration of more or less constructed
-examples look at how the introduced anisotropy changes the method. As
-the anisotropic total variation also introduces several new parameters,
-the result section will focus on looking at how these parameters affect
-the restoration performance.
+[image processing]
+
+Image processing forms an important part of our modern computerized
+world. Tasks previously reserved for humans, like detecting edges,
+recognizing textures and inferring shapes and motions can now be
+performed algorithmically. The background of these methods span several
+fields, including phychology and biology for the study of human vision,
+statistics and analysis for the mathematical background, and computer
+science for their implementation and performance analysis.
+
+[image restoration]
+
+Image restoration methods are concerned with trying to remove noise in
+images. There are numerous different ways to approach the problem. For
+background we will discuss some before we go into detail on the total
+variation method.
+
+[total variation]
+
+As the name suggests, total variation is a measure of how much variation
+there is in an image, in total. Thus these methods are often trying to
+reduce the total variation while still staying close to the original
+image, in some sense. The main strength of the total variation method is
+its ability to conserve edges, as it does not favor smooth gradients
+over edges like many other methods. However, it may introduce edges from
+noise, and it may also reduce the total contrast in the image.
+
+mention project
+
+[thesis walkthrough]
+
+In this thesis we introduce an anisotropy tensor into the total
+variation norm. This means making the norm directionally dependant, such
+that we can control the weight of the variation based on the position,
+and also the direction. The continuous problem is transformed through an
+anisotropic coarea formula and an anisotropic Cauchy--Crofton formula to
+facilitate the discretization. This is one of the main parts of this
+thesis.
+
+The continuous formulation, now consisting of several integrals, is then
+discretized into a series of sums, over the pixels in an image. We make
+sure that the discrete formulation is consistent with the continuous
+one.
+
+A provable optimal solution to the discrete problem is then found using
+a graph cut algorithm. For each level in the image, a graph is
+constructed, and a minimum cut is found, and the restored image can then
+be extracted from all these partial solutions.
+
+For finding these minimum cuts, two algorithms are presented. The
+push-relabel algorithm is considered to be the fastest and most
+versatile for general graphs, while the Boykov--Kolmogorov algorithm is
+specially taylored for the type of graphs we find in these kinds of
+imaging applications.
+
+Further we have some results, and then that's it.
+
+%In everyday life cameras are used to capture a moment and save it for
+%eternity, but imaging technology technology can be used in many other
+%contexts, including medical and astronomical applications.
+%With the advent of computers, tasks previously reserved for the human
+%brain, like recognizing textures, detecting edges and inferring shapes
+%and motion, can now be performed algorithmically. The background of
+%these methods span several fields, including psychology and biology for
+%the study of human vision, statistics and analysis for the mathematical
+%foundations, and computer science for the implementation and performance
+%analysis.
+%
+%It is possible to roughly spread the tasks of image processing out along
+%a line spanning from the raw capturing of light coming into the camera,
+%a purely physical problem, to the computer vision
+%methods in the other end, semantically interpreting the scene,
+%recognizing objects, their position and their movement. In between we
+%have algorithms working on the captured image, without implying too much
+%about what the image contains. These methods are often categorized as
+%\emph{early vision} and includes but is not limited to image
+%restoration, segmentation, filtering and edge detection.
+%
+%In the process of capturing the image with our physical apparatus,
+%there is always some noise included. Some might come from the physical
+%nature of how light travels from the scene to the objective, while some
+%might result from inaccuracies in the construction of the capturing
+%apparatus. These noise-inducing processes can be studied, and modeled
+%mathematically, and the process of image restoration looks at how one
+%can remove some---or optimally all---of the noise in the captured
+%image. These methods often take into account how we would expect a
+%``normal'' image to look in the capturing conditions, and also what
+%kinds of noise we expect to be a part of the image.
+%
+%In the next chapter we will see a short overview of some of the most
+%popular methods in image restoration, especially those related to the
+%anisotropic total variation based method that will be the focus of the
+%rest of the thesis.
+%
+%In my project work \cite{project}, I described how total variation
+%regularization can be performed on a grayscale image using a graph cut
+%approach. In this thesis, this method will be expanded upon by
+%introducing a more flexible \emph{anisotropic} total variation. The goal
+%is to improve how the method behaves around edges and detailed parts of
+%the image.
+%
+%In order to get a good understanding of the method, we will try to
+%describe and look into all the different parts needed to make the method work,
+%instead of focusing particularly on one piece of the puzzle. The
+%continuous formulation and the theorems relating to it are thoroughly
+%described, as they are central to how we arrive at our discrete minimizer.
+%Next we look at the discretization of the functional, and its different
+%approximation errors. The discrete minimizer is found using a graph cut
+%approach as in my project work, and the description is similar except
+%for some minor changes and a new section on the Boykov--Kolmogorov
+%algorithm.
+%
+%In the end we will through restoration of more or less constructed
+%examples look at how the introduced anisotropy changes the method. As
+%the anisotropic total variation also introduces several new parameters,
+%the result section will focus on looking at how these parameters affect
+%the restoration performance.
 
 \chapter{Methods in image restoration}
 
@@ -279,7 +336,7 @@ problem we hope to avoid in our anisotropic total variation method.
         \includegraphics[width=\textwidth]{fig/fanisodiff.png}
         \caption{Regularized, parameters: bleep bloop}
     \end{subfigure}
-    \caption{\fixme{UPDATE THIS}}
+    \caption[bleapofsijdosij]{\fixme{UPDATE THIS}}
     \label{fig:ansi_diff}
 \end{figure}
 
@@ -386,7 +443,8 @@ restoration.
         \includegraphics[width=\textwidth]{fig/factory/grad/r_p2_n16_b5000_g1000000000_r5_s3.png}
         \caption{Total variation restoration}
     \end{subfigure}
-    \caption{%
+    \caption[The stair-casing effect of regular total variation
+    restoration]{%
         Although the original gradient was smooth, the total variation
         method manages to find structure in the noise, and create edges
         in the restored image.
@@ -413,7 +471,7 @@ regularized image.
         \centering
         \includegraphics[width=\textwidth]{fig/ftv.png}
     \end{subfigure}
-    \caption{%
+    \caption[Heavily regularized fingerprint showing contrast loss]{%
         A fingerprint heavily regularized using the total variation
         method. The originally white and black ridges have been brought
         closer in value, to reduce the total variation.
index 5a788c9728e54d3e52fdc69e148a5e1584e0c392..357f623bd686ffff63e8779ecd757547bf2caf75 100644 (file)
--- a/main.tex
+++ b/main.tex
@@ -11,6 +11,7 @@
 %\setmainfont[Mapping=tex-text,Ligatures=TeX]{TeX Gyre Pagella}
 %\setmathfont[Mapping=tex-text,Ligatures=TeX]{TeX Gyre Pagella Math}
 \usepackage{lmodern}
+%\usepackage{parskip}
 \usepackage{amsthm}
 \usepackage{graphicx}
 \usepackage[percent]{overpic}
 %    BLEEP BLOOP.
 %}
 
+\vspace*{\fill}
+
 \section*{Abstract}
 
-Lelelel.
+There are numerous methods for image denoising and restoration. In this
+thesis we consider a particular kind of edge-enhancing method based on
+total variation. A directional dependence is introduced through an
+anisotropy tensor based on the noisy image. Using a coarea formula and a
+Cauchy--Crofton style formula the continuous problem is transformed to obtain a discretizable
+problem. A solution is found by constructing graphs where the minimum
+cuts correspond to minimizers of the discrete problem. Parameters
+exposed allows us to control the amount of regularization applied across
+edges, and some experiments are presented to show how the anisotropy and
+its parameters affect the method.
+
+
+%There are numerous methods for image denoising and restoration. In this
+%thesis we consider a total variation based method modified with an
+%anisotropic regularization term. A tensor based on the original
+%image is introduced to alter the way the total variation is measured.
+%Regular total variation based methods
+%are good at conserving edges, but can still lead to contrast loss and
+%loss of details. The anisotropy is introduced to be able to control the
+%direction and strength of the regularization.
+%
+%The method is first described in a continuous framework. A
+%foundation is laid out and well-foundedness is discussed. Then follows
+%an important
+%part of the thesis which is the transformation and discretization of this
+%continuous optimization problem. This discrete problem can then be
+%applied to digital grayscale images.
+%A solution to the discrete problem is found by
+%several successive minimum graph cuts. In the end we assess the
+%performance of the algorithm and how the different parameters affect the
+%results by experiments on more and less constructed examples.
+
+\vspace*{\fill}
 
 \cleardoublepage
 
@@ -115,16 +150,32 @@ Lelelel.
 %    BLEEP BLEEP NORSK.
 %}
 
+\vspace*{\fill}
+
 \section*{Sammendrag}
 
 Lololol.
 
+\vspace*{\fill}
+
 \cleardoublepage
 
+\vspace*{\fill}
+
 \section*{Preface}
 
-Bleep bloop. Acknowledements? Takk til Henrik for sjokolademelka, og
-Kine for god muffins.
+This master thesis concludes my study at the Applied Physics and
+Mathematics Master's degree programme with specialization in Industrial
+Mathematics at the Norwegian University of Science and Technology
+(NTNU).
+
+I would like to thank my supervisor Markus Grasmair at the Department of
+Mathematical Sciences for invaluable help and discussion throughout my
+work with my project and this thesis.
+
+Bjørn Rustad, \today.
+
+\vspace*{\fill}
 
 % Romerske tall på alt før selve rapporten starter er pent.
 \pagenumbering{roman}
@@ -136,6 +187,8 @@ Kine for god muffins.
 % Nå vi vil ha noe i topp- og bunnteksten
 \pagestyle{headings}
 
+\setcounter{tocdepth}{1}
+
 % Si til LaTeX at vi vil ha ei innholdsliste generert akkurat her:
 \tableofcontents
 
index 653130ddb413958208df5f21a02c63dc5223e8bd..378aa8c4a824383c1b19e9a38140b3f7740bf8f0 100644 (file)
@@ -481,12 +481,13 @@ which means that in the general case, the algorithm has a complexity of
 $O(\abs{E}\abs{V}^2)$.
 
 \subsection{Vertex selection rules}
+
 Until now we have stated that the discharge procedure is run on active
 vertices until there are no more active vertices left. The choice of the
 order in which to discharge these active vertices remain, and multiple
 possibilities exist.
 
-The First In, First Out (FIFO) approach is to always maintain a queue of
+The «First In, First Out» (FIFO) approach is to always maintain a queue of
 active vertices. When the vertex from the beginning of the queue is
 discharged, other vertices might become active, and these are added at
 the end of the queue. The original article of Goldberg and Tarjan
@@ -606,7 +607,7 @@ of the graph.
 Now we have an algorithm for finding a minimum $s$-$t$-cut in a graph,
 so let's return to the graph constructed in
 Section~\ref{sec:graph_construction}. For every level $\lambda \in \{0,
-\ldots, L\}$ we want to find a minimum $s$-$t$-cut which gives us the
+\ldots, L-1\}$ we want to find a minimum $s$-$t$-cut which gives us the
 thresholded image $u^\lambda$. These can then hopefully be stacked
 together to form the final image $u$.
 
@@ -763,7 +764,7 @@ See \cite{gallo1989fast}, \cite{hochbaum2001efficient} and
 \begin{algorithm}
     \begin{algorithmic}
         \Function{BoykovKolmogorov}{$G$, $s$, $t$}
-        \State $A := {s, t}$, $O := \emptyset$, $S = {s}$, $T = {t}$
+        \State $A := \{s, t\}$, $O := \emptyset$, $S = \{s\}$, $T = \{t\}$
         \State $s\text{.color} = S$, $t\text{.color} = T$
         \While{\texttt{True}}
         \State $e \gets$ \Call{Grow}{$G$, $A$}
@@ -783,15 +784,28 @@ A maximum flow algorithm specialized for the type of graphs found in
 imaging applications is described by Boykov and Kolmogorov in
 \cite{boykov2004experimental}. Their algorithm is an augmenting path
 algorithm where the paths are found using trees that keep track of
-possible paths.
+possible partial paths.
+
+The idea of the algorithm is to always maintain the structure of two
+trees, one rooted in the source and one rooted in the sink, which are
+built up using only edges that can carry additional flow. The algorithm
+consists of different phases, one being the \emph{grow} phase, where the
+trees are grown by adding additional edges. When an unsaturated edge
+connecting the two trees are found, the \emph{augment} phase starts.
+In this phase, an augmenting path through the trees is recovered, and
+the flow is augmented. Some of the edges in the trees may then become
+saturated, and can no longer be a part of their tree. The vertices they
+connect to the tree become \emph{orphans} which in the \emph{adopt}
+phase are adopted back into their trees, or alternatively freed from
+their tree connection.
 
 There is one tree denoted $S$ with the source $s$ as its root, and
 another tree denoted $T$ with the sink $t$ as its root. These trees are
-non-overlapping, and all edges in the tree $S$ can carry flow towards
+disjoint, and all edges in the tree $S$ can carry flow towards
 the leafs of the tree, while all edges in $T$ can carry flow towards the
 sink $t$.
 
-A vertex can either be part of these trees, or be a free vertex, and we
+A vertex can either be part of one of these trees, or be a free vertex, and we
 write
 \begin{equation}
     u\text{.color} = \begin{cases}
@@ -800,15 +814,15 @@ write
         \texttt{Free} & \text{ otherwise.}
     \end{cases}
 \end{equation}
-The idea of the algorithm is then to grow these trees towards eachother,
-and when they touch, we have found an augmenting path from $s$ to $t$.
-As much flow as possible is then pushed along this path, and some edges
-will become saturated. If an edge in the tree $S$ or $T$ becomes
-saturated, the tree is split up into multiple trees, also called a
-forest. The parts no longer connected to the root are called orphans,
-and we write $u \in O$ for an orphan vertex $u$. These vertices are---if
-possible---joined back into the tree, or become free nodes.
-
+%The idea of the algorithm is then to grow these trees towards eachother,
+%and when they touch, we have found an augmenting path from $s$ to $t$.
+%As much flow as possible is then pushed along this path, and some edges
+%will become saturated. If an edge in the tree $S$ or $T$ becomes
+%saturated, the tree is split up into multiple trees, also called a
+%forest. The parts no longer connected to the root are called orphans,
+%and we write $u \in O$ for an orphan vertex $u$. These vertices are---if
+%possible---joined back into the tree, or become free nodes.
+%
 The vertices in the trees $S$ and $T$ are either active or passive, and
 we write $u \in A$ if $u$ is active. The active vertices are those at
 the boundary of the tree, which can possibly connect to other vertices
@@ -816,7 +830,7 @@ to grow the tree. The passive vertices are internal in the tree, and
 edges to their neighbors are either a part of the tree, or completely
 saturated.
 
-The main loop of the algorithm is then as shown in
+The main loop of the algorithm is as shown in
 Algorithm~\ref{alg:boykov_kolmogorov}. In the grow procedure, the trees are grown
 from their active vertices until a new path is found. The flow
 is then augmented along this path in the augment procedure, and orphan
@@ -960,7 +974,7 @@ information until reaching either $s$, $t$ or an orphaned vertex.
 
 If a potential parent $v$ of $u$ is \emph{not} found, $u$ becomes a free
 vertex. All vertices that had $u$ as its parent are orphaned, and are thus
-treeted by the adopt procedure later. Vertices that are in one of the
+treated by the adopt procedure later. Vertices that are in one of the
 trees $S$ or $T$, and have a non-saturated edge to this newly freed
 vertex $u$, become active.
 
@@ -980,7 +994,7 @@ successive runs.
 \end{figure}
 
 Since this is algorithm does not deal with the relaxed preflow concept,
-the updates from one level to the next has to be done in a different
+the updates from one level to the next have to be done in a different
 way. We can no longer decrease the capacity of edges, as this could
 break the flow conservation constraint. However, the graph construction
 in Section~\ref{sec:graph_representable} did allow for the addition of an arbitrary constant to
@@ -994,13 +1008,12 @@ with decreasing $\lambda$ parameter.
 This construction allows us to update the capacities of the edges, while
 retaining the flow and the trees $S$ and $T$. A nice property that
 follows is that the partition $(V - T, T)$ is after each run a minimum
-cut since there are is no more residual capacity between the trees $S$
-and $T$. Further, the set of vertices $T$ is non-decreasing, or more
-importantly, no vertex already
-in the tree $T$ will leave $T$ for succeeding lower $\lambda$ values.
+cut since there is no more residual capacity between the trees $S$
+and $T$. Further, no vertex already in the tree $T$ will leave $T$ when
+the trees are updated and algorithm is run for lower $\lambda$ values.
 This can be seen from the fact that if $u$ is in $T$ and the algorithm
 has terminated, all paths from $s$ to $t$ going
-through $u$ has a saturated edge somewhere before $u$. For all these
+through $u$ have a saturated edge somewhere before $u$. For all these
 paths, the capacity will only change for edges after $u$, as we only
 change the capacity of edges $(v, t)$. Thus these saturated edges will
 stay saturated, and $u$ will stay in $T$. \fixme{shaky}
@@ -1014,37 +1027,13 @@ recommended in \cite{boykov2004experimental}, we have implemented a
 augmenting path found is a shortest path, although later the distance
 information is lost in the adoption stage.
 
-In the adoption stage it is possible, and perhaps preferrable to seek
+In the adoption stage it is possible, and perhaps preferable to seek a
 possible parent that is closest to the root of the tree, and adopt that
-vertex as parent, instead of the first possible.
+vertex as parent, instead of the first one found.
 
 Because of the particular graph construction, all vertices except $s$
-and $t$ are connected to $s$ and $t$. Thus there are as many two-edged
+and $t$ are connected directly to $s$ and $t$. Thus there are as many two-edged
 paths from $s$ to $t$ as there are pixels in the image. When increasing
 the capacity of edges $(v, t)$, a quick sweep over these two-edged paths
 to send any possible flow may speed up the algorithm.
 
-\section{Implementation}
-
-A \cpp{} implementation can be found in
-Appendix~\ref{app:c++implementation}. It uses the open computer vision
-library OpenCV \cite{opencv_library} to load and save image files.
-
-Note that when implementing maximum flow algorithms it is not a good
-idea, memory- and performance-wise, to actually construct the residual
-graph $G_f$. Instead, every time we update the flow $f(u,v)$ we set
-the flow in the opposite direction to its negative value $f(v,u) =
--f(u,v)$. Then we can at any time, consider the value $c(u,v) - f(u,v)$
-in the place of the residual capacity $c_f(u,v)$.
-
-For the gap relabeling heuristic, we need to have a easy way of finding
-when a gap occurs. This is done by keeping track of how many vertices
-exist with each label.
-
-\fixme{something on bk?}
-\fixme{move this to the appendix possibly}
-
-\section{Performance comparison}
-
-Maybe.
-
index c15b23eb22cd4ef50e91fd0e84d5e89e1fa1e7a4..fbeffa1184b4c6ba5e278017f5d4bcec1dc8a9b1 100644 (file)
@@ -44,7 +44,7 @@ the restoration algorithm.
 \end{figure}
 
 The anisotropy was introduced into the total variation in order to
-lessen the regularization done across what we know, or at least are
+lessen the regularization applied across what we know, or at least are
 pretty sure to be edges in the image. Before considering the anisotropy
 tensor construction described earlier, we will look at how a simple
 predescribed tensor affects the regularization. Imagine a tensor which
@@ -59,7 +59,7 @@ has been restored in two different ways, first with a uniform anisotropy
 tensor $A = \operatorname{diag}(1, \epsilon)$, and then with the tensor
 described in Section~\ref{sec:anisotropy_tensor}. We see in
 Figure~\ref{fig:tensor_experiment_unif} that the uniform tensor gives a
-strong smoothing in the $x$-direction, while no apparent smoothing in
+strong smoothing in the $x$-direction, but no apparent smoothing in
 the $y$-direction.
 
 \begin{figure}
@@ -136,22 +136,26 @@ restoration algorithm. We start out with a section of the much-used Lena
 test image in Figure~\ref{fig:lena_process_orig}. The first step in the
 construction of the structure tensor is to blur the image with parameter
 $\sigma$, and the result is shown in Figure~\ref{fig:lena_process_blur}.
-The blurring is done so that the edge detector $\nabla f_\sigma$, which
-is shown squared and normalized in Figure~\ref{fig:lena_process_edge}, is not too
+The blurring is done so that the edge detector $\nabla f_\sigma$,
+visualized as $\abs{\nabla f_\sigma}^2$ in Figure~\ref{fig:lena_process_edge}, is not too
 sensitive to noise in the image. The structure tensor is then
 constructed using $\nabla f_\sigma$ and smoothed according to the
 integration scale $\rho$.
 The resulting anisotropy tensor is visualized in
 Figure~\ref{fig:lena_process_tensor}. In a selection of points, the
-tensor has been drawn as its two eigenvectors, with the corresponding
-eigenvalue as its length, and we clearly see that the eigenvalues are
-smaller across edges. Another way of visualizing the tensor, which makes
-it possible to see it in every point, is using the color wheel in
-Figure~\ref{fig:color_wheel}. The color is decided by the tensor angle,
-while the brightness, or the radius in the wheel, is set to $1 /
-\lambda_2$, the inverse of the smallest eigenvalue of the metric tensor
-$M(x)$. Thus the stronger the anisotropy, the brighter the color, while
-we expect smooth areas in the original image to be black.
+eigenvectors of the tensor have been drawn. The length of the vectors
+have been scaled by the corresponding eigenvalue.
+
+Another way of visualizing the tensor is shown in
+Figure~\ref{fig:lena_process_color}. The color in each point is decided
+by the size of the smallest eigenvalue, and the direction of its
+corresponding eigenvector, using the color wheel in
+Figure~\ref{fig:color_wheel}. The direction decides the color,
+while the brightness, here the radius, is set to $1 / \sigma_1 - 1$,
+where $\sigma_1$ is the smallest eigenvalue.
+Thus the stronger the anisotropy, the brighter the color, while
+we expect uniform areas in the original image to be black in the
+tensor visualization.
 
 \begin{figure}
     \centering
@@ -175,17 +179,17 @@ anisotropy affected the regularization is not obvious however.
     ~
     \begin{subfigure}[t]{0.30\textwidth}
         \centering
-        \includegraphics[width=\textwidth]{fig/factory/lines/r_p2_n8_b5000_g100_r4_s2.png}
+        \includegraphics[width=\textwidth]{fig/factory/lines/r_p2_n8_b10000_g100_r4_s2.png}
     \end{subfigure}
     ~
     \begin{subfigure}[t]{0.30\textwidth}
         \centering
-        \includegraphics[width=\textwidth]{fig/factory/lines/r_p2_n8_b5000_g100_r15_s0.2.png}
+        \includegraphics[width=\textwidth]{fig/factory/lines/r_p2_n8_b10000_g100_r15_s0.2.png}
     \end{subfigure}
 
     \begin{subfigure}[t]{0.30\textwidth}
         \centering
-        \includegraphics[width=\textwidth]{fig/factory/lines/r_p2_n8_b5000_g100_r15_s2_blur.png}
+        \includegraphics[width=\textwidth]{fig/factory/lines/r_p2_n8_b10000_g100_r15_s2_blur.png}
         \caption{%
             Original and blurred with $\sigma = 2$.
         }
@@ -194,7 +198,7 @@ anisotropy affected the regularization is not obvious however.
     ~
     \begin{subfigure}[t]{0.30\textwidth}
         \centering
-        \includegraphics[width=\textwidth]{fig/factory/lines/r_p2_n8_b5000_g100_r4_s2_color.png}
+        \includegraphics[width=\textwidth]{fig/factory/lines/r_p2_n8_b10000_g100_r4_s2_color.png}
         \caption{%
             Restored with relatively high noise scale of $\sigma = 2$.
         }
@@ -203,7 +207,7 @@ anisotropy affected the regularization is not obvious however.
     ~
     \begin{subfigure}[t]{0.30\textwidth}
         \centering
-        \includegraphics[width=\textwidth]{fig/factory/lines/r_p2_n8_b5000_g100_r15_s0.2_color.png}
+        \includegraphics[width=\textwidth]{fig/factory/lines/r_p2_n8_b10000_g100_r15_s0.2_color.png}
         \caption{%
             Restored with low noise scale $\sigma = 0.2$, but large integration
             scale $\rho = 15$.
@@ -213,10 +217,15 @@ anisotropy affected the regularization is not obvious however.
     \caption[Effects of the $\sigma$ and $\rho$ parameters on
     restoration]{%
         An example constructed to show the effects of the parameters
-        $\sigma$ and $\rho$ in the anisotropy tensor. The noise scale
-        $\sigma$ controls what is considered to be noise, while the
-        integration scale $\rho$ controls the size of the structures
-        considered by the tensor.
+        $\sigma$ and $\rho$ in the anisotropy tensor.
+        The noise scale $\sigma$ controls the smoothing done before edge
+        detection, and $\sigma=2$ means the thinnest lines are
+        not considered to be edges by the tensor, and they are thus
+        regularized.
+        The integration scale $\rho$ controls the size of the structures
+        considered by the tensor, and does in this case allow us to
+        ignore the smaller structures. Parameters: $\abs{\mathcal{N}} =
+        8$, $\beta = 10000$, $\omega = 100$.
     }
     \label{fig:scale_comp}
 \end{figure}
@@ -225,7 +234,7 @@ To look further into the effects of the parameters in our tensor
 construction we have a constructed a zebra pattern of increasing width
 as shown in Figure~\ref{fig:scale_comp}.
 The anisotropy introduced should in theory help reduce contrast
-loss in this situation, by reducing the regularization done in the
+loss in this situation, by reducing the regularization applied in the
 $x$-direction across the edges. There is however the question of how the
 different scales $\sigma$ and $\rho$ affect the regularization.
 
@@ -428,6 +437,24 @@ corners some.
     \input{fig/pixel_perimeter.tex}
 \end{figure}
 
+As mentioned before, there is a discretization error which relates
+to the length of the edges in the neighborhood. We approximated the
+number of times an edge $e_{ab}$ crosses level set boundary by
+$\abs{u^\lambda_a
+- u^\lambda_b}$, an approximation that becomes worse for long edges. Thus a larger
+neighborhood is not always better, even if it will reduce the artifacts
+discussed above. In Figure~\ref{fig:lena_neigh}, a noisy image of Lena
+has been restored using two neighborhood stencils, and
+there are obvious differences. For the stencil of size 72, the restored
+image still contains some pixel-sized noise.
+An explanation can be found in
+Figure~\ref{fig:pixel_perimeter}. We see why the length of a
+one-pixel curve is underestimated by the Cauchy--Crofton formula when
+some of the edges are long. Because
+many edges $e_{ab}$ cross the curve cross while $\abs{u^\lambda_a - u^\lambda_b}
+= 0$, thus these edges are ignored completely in our perimeter
+approximation.
+
 \begin{table}
     \caption[Circle circumferences estimated by the Cauchy--Crofton
     formula]{%
@@ -454,24 +481,6 @@ corners some.
     \label{tab:circumference}
 \end{table}
 
-As mentioned before, there is a discretization error which relates
-to the length of the edges in the neighborhood. We approximated the
-number of times an edge $e_{ab}$ crosses level set boundary by
-$\abs{u^\lambda_a
-- u^\lambda_b}$, an approximation that becomes worse for long edges. Thus a larger
-neighborhood is not always better, even if it will reduce the artifacts
-discussed above. In Figure~\ref{fig:lena_neigh}, a noisy image of Lena
-has been restored using two neighborhood stencils, and
-there are obvious differences. For the stencil of size 72, the restored
-image still contains some pixel-sized noise.
-An explanation can be found in
-Figure~\ref{fig:pixel_perimeter}. We see why the length of a
-one-pixel curve is underestimated by the Cauchy--Crofton formula when
-some of the edges are long. Because
-many edges $e_{ab}$ cross the curve cross while $\abs{u^\lambda_a - u^\lambda_b}
-= 0$, thus these edges are ignored completely in our perimeter
-approximation.
-
 An additional demonstration that this problem mostly relates
 to small sized noise is shown in Table~\ref{tab:circumference}. The
 table shows how our discrete Cauchy--Crofton formula approximates the
@@ -487,8 +496,8 @@ approximated is that of an actual continuous circle $u : \mathbb{R}^2
         \centering
         \includegraphics[width=\textwidth]{fig/factory/finger/r_p2_n32_b15000_g1000000000000_r10_s3.png}
         \caption{%
-            Regular TV,\\ $\beta=15000$,\\ $\norm{u - f}_{L^1} =
-            2886817$.
+            Regular TV,\\ $\beta=15000$,\\ $\norm{u - f}_{L^2} =
+            17022$.
         }
         \label{fig:finger_contrast_tv}
     \end{subfigure}
@@ -498,17 +507,17 @@ approximated is that of an actual continuous circle $u : \mathbb{R}^2
         \includegraphics[width=\textwidth]{fig/factory/finger/r_p2_n32_b15000_g150_r10_s3.png}
         \caption{%
             Anisotropic TV ($\gamma = 150$), $\beta=15000$,
-            $\norm{u - f}_{L^1} = 2558191$.
+            $\norm{u - f}_{L^2} = 15272$.
         }
         \label{fig:finger_contrast_atv1}
     \end{subfigure}
     ~
     \begin{subfigure}[t]{0.30\textwidth}
         \centering
-        \includegraphics[width=\textwidth]{fig/factory/finger/r_p2_n32_b21450_g150_r10_s3.png}
+        \includegraphics[width=\textwidth]{fig/factory/finger/r_p2_n32_b20970_g150_r10_s3.png}
         \caption{%
-            Anisotropic TV ($\gamma = 150$), $\beta=21450$,
-            $\norm{u - f}_{L^1} = 2886529$.
+            Anisotropic TV ($\gamma = 150$), $\beta=20970$,
+            $\norm{u - f}_{L^2} = 17022$.
         }
         \label{fig:finger_contrast_atv2}
     \end{subfigure}
@@ -532,14 +541,14 @@ $\omega = 150$. This gives an obvious contrast enhancement,
 but it is however not obvious what this
 tells us about the quality of the anisotropic algorithm. As previously
 mentioned, increasing the anisotropy (decreasing $\omega$) means
-decreasing the total amount of regularization done, and less contrast loss is
+decreasing the total amount of regularization applied, and less contrast loss is
 an expected outcome of decreasing the regularization, disregarding the
 anisotropy.
 
 Thus in the last
 image we have also used $\omega = 150$ but the restoration
 amount $\beta$ is increased such that the amount of noise removed
-$\norm{u - f}_{L^1}$ is
+$\norm{u - f}_{L^2}$ is
 approximately equal to the noise removed when using regular total
 variation in Figure~\ref{fig:finger_contrast_tv}. By visual inspection,
 the last image seems to have somewhat higher contrast. This can be