diff --git a/Praxisbericht.pdf b/Praxisbericht.pdf
index 6c83988ab70d8d48a1f4fe142b7fee535bb8c392..75af755f9586e43284b3194ed2e86ff339f9ff46 100644
Binary files a/Praxisbericht.pdf and b/Praxisbericht.pdf differ
diff --git a/Praxisbericht.tex b/Praxisbericht.tex
index 113cb8de57da55371c22bd2136a58ca0918e8b08..27b77dc3dc83496e3fbd6238480c6bd0ea30a078 100644
--- a/Praxisbericht.tex
+++ b/Praxisbericht.tex
@@ -36,7 +36,7 @@
 		soll vor dem Aufnehmen auf ein Stapelfahrzeug sichergestellt werden, dass es sich tatsächlich um das richtige Gebinde handelt.
 
 		Dazu sind alle Gebinde mit einem oder mehreren Codes in Klarschrift beschriftet, welche erkannt und verifiziert werden müssen. Wie genau diese
-		Erkennung stattfinden ist im folgenden Dokumentiert.
+		Erkennung stattfinden, ist im folgenden Dokumentiert.
 
 		\section{Container Typen} \label{sec: container}
 
@@ -46,7 +46,7 @@
 			ebenfalls.
 
 			Des Weiteren gibt es tonnenförmige Rundgebinde, welche unterschiedliche Größen haben können. Diese werden auf Transportrahmen befestigt
-			und dann als Gebinde bezeichnet. Ein Gebinde kann aus einem oder zwei Rundcontainer bestehen, welche mit dem Deckel zum Erkennungssystem
+			und dann als Gebinde bezeichnet. Ein Gebinde kann aus einem oder zwei Rundcontainern bestehen, welche mit dem Deckel zum Erkennungssystem
 			liegend verladen sind. Jeder Rundcontainer ist einzeln auf dem Deckel mit einem Code versehen, diese können beliebig rotiert sein.
 			Zusätzlich befindet sich noch ein weiterer Code auf dem Transportrahmen. Siehe auch \autoref{subfig: rund-gebinde}.
 
@@ -105,36 +105,46 @@
 			Zusätzlich zu der hier behandelten Komponenten kann eine weitere Software vorausgesetzt werden. Diese Läuft auf dem Panel-PC und
 			präsentiert dem Fahrer eine grafische Oberfläche (\emph{GUI}). Am Anfang der Schicht erhält diese eine Liste mit Arbeitsaufträgen für die
 			Schicht inklusive der Codes der zu transportierenden Container. Diese Software stößt den Scanprozess an und erhält das Ergebnis, um es dem
-			Fahrer grafisch darzustellen. Sollte der Lesevorgang nur Teilweise oder gar nicht funktionieren, soll der Fahrer so viele
+			Fahrer grafisch darzustellen. Sollte der Lesevorgang nur teilweise oder gar nicht funktionieren, soll der Fahrer so viele
 			Teilinformationen wie möglichen erhalten und wird von der Zusatzsoftware zum manuellen Eingreifen aufgefordert.
 
 			Außerdem soll die Möglichkeit bestehen ein Foto des Abstellortes aufzunehmen und zur Archivierung an den erfolgreichen Auftrag anzuhängen.
 
 
-	% \chapter{Erstellen von simulierten Testbildern mittels Blender} \label{chap: blender}
+		\section{Testumgebung} \label{sec: testumgebung}
+
+			\textcolor{red}{TODO}
+
 
 	\chapter{Umsetzung in Python} \label{chap: python}
 
 		Das Softwaremodul zur Schrifterkennung wird in Python umgesetzt. Das folgende Kapitel dient zur Dokumentation des Codes.
 
-		\medskip
-		Um das Projekt zum ersten Mal auf einen neuen Computer zu benutzen, müssen die in der Datei \lstinline{requirements.txt} aufgelisteten Pakete
-		installiert werden. Hierzu wird das Anlegen eines sogenannten \emph{Virtual Enviroments} empfohlen. Dadurch werden die Pakete nicht für den
-		gesamten Computer installier, sondern in einem Unterordner dieses Projektes abgelegt und nur diesem Projekt zur Verfügung gestellt. Dazu
-		werden die folgenden Befehle oder das Makefilerezept \lstinline{setup} verwendet.
-
-		\begin{lstlisting}[language=bash,gobble=12]
-			# virual env erstellen:
-			python -m venv .venv
-			# venv für diese Terminal-Session aktiviren (windows):
-			call .venv\Scripts\activate
-			# pakete installieren:
-			pip install -r requirements.txt
-		\end{lstlisting}
-
-		Der Quellcode des Projektes befindet sich im Unterordner \lstinline{./src}. Dort befindet sich die Datei \lstinline{__main__.py} als
-		Haupteinstiegspunktes des Programms sowie alle weiten selbsterstellten Pakete. Das Programm wird also mittels
-		\lstinline{python src/__main__.py} gestartet (ein Beispiel ist im Makefilerezept \emph{run} gezeigt).
+		\section{Projektstruktur} \label{sec: struktur}
+
+			\textcolor{red}{TODO}
+
+
+		\section{Verwendete Bibliotheken} \label{sec: bibliotheken}
+
+
+			Um das Projekt zum ersten Mal auf einen neuen Computer zu benutzen, müssen die in der Datei \lstinline{requirements.txt} aufgelisteten
+			Pakete installiert werden. Hierzu wird das Anlegen eines sogenannten \emph{Virtual Enviroments} empfohlen. Dadurch werden die Pakete nicht
+			für den gesamten Computer installiert, sondern in einem Unterordner dieses Projektes abgelegt und nur diesem Projekt zur Verfügung
+			gestellt. Dazu werden die folgenden Befehle oder das Makefilerezept \lstinline{setup} verwendet.
+
+			\begin{lstlisting}[language=bash,gobble=12]
+				# virual env erstellen:
+				python -m venv .venv
+				# venv für diese Terminal-Session aktiviren (windows):
+				call .venv\Scripts\activate
+				# pakete installieren:
+				pip install -r requirements.txt
+			\end{lstlisting}
+
+			Der Quellcode des Projektes befindet sich im Unterordner \lstinline{./src}. Dort befindet sich die Datei \lstinline{__main__.py} als
+			Haupteinstiegspunktes des Programms sowie alle weiten selbsterstellten Pakete. Das Programm wird also mittels
+			\lstinline{python src/__main__.py} gestartet (ein Beispiel ist im Makefilerezept \emph{run} gezeigt).
 
 		\section{Schnittstelle} \label{sec: interface}
 
@@ -175,9 +185,9 @@
 				die durch Fehler in einzelnen Transistoren des Kamerasensors entstehen. Diese werden durch einfache Mittelwertbildung mit allen
 				angrenzenden Pixeln eliminiert.
 
-				Danach wird ein bilateraler Filter mit einem $7\!\times\! 7$ auf das gesamte Bild angewandt. Dadruch werden Bildsektionen mit annähern
-				identischen Farbwerten vereinheitlicht, gleichzeitig bleiben Kanten (also stark unterschiedlich Farbwerte bei Nachbarpixeln) aber
-				erhalten.
+				Danach wird ein bilateraler Filter mit einem $7\!\times\! 7$ Kernel auf das gesamte Bild angewandt. Dadurch werden Bildsektionen mit
+				annähernd identischen Farbwerten vereinheitlicht, gleichzeitig bleiben Kanten (also stark unterschiedliche Farbwerte bei
+				Nachbarpixeln) aber erhalten.
 
 				\begin{figure}
 					\subfigure[Originalbild direkt von der Kamera]{\includegraphics[width=0.475\textwidth]{img/loaded.png}}
@@ -187,20 +197,20 @@
 				\end{figure}
 
 				\autoref{fig: filterung} zeigt einen direkten Vergleich vor und nach der Filterung. Wie man sieht, sind die kleinen Störungen alle
-				herausgefiltert, das Bild ist aber etwas Unschärfer geworden. Das ist aber notwendig um die Ergebnisse der nachfolgenden Schritte zu
+				herausgefiltert, das Bild ist aber etwas unschärfer geworden. Das ist aber notwendig um die Ergebnisse der nachfolgenden Schritte zu
 				verbessern.
 
 
 			\subsection{Binarisierung} \label{sub: binarysation}
-				Als Nächstes wird das Bild Binarisiert. Das Bild wird also auf nur zwei Farben heruntergebrochen, in dem nur noch die prominenten
+				Als Nächstes wird das Bild binarisiert. Das Bild wird also auf nur zwei Farben heruntergebrochen, in dem nur noch die prominenten
 				Features enthalten sind. Implementiert ist dies in der Funktion \lstinline{preprocessing.make_binary_image()}.
 
 				Dazu wird ein in OpenCV fertig implementiert Algorithmus namens \emph{Otsu} verwendet. Dieser ermittelt automatisch einen geeigneten
 				Grenzwert und färbt dunklere Bereiche schwarz und hellere Bereich weiß.
 
-				Durch Tests hat sich ergeben, dass die Beleuchtung und andere Faktoren so unterschiedliche sein können, dass mehrere
+				Durch Tests hat sich ergeben, dass die Beleuchtung und andere Faktoren so unterschiedlich sein können, dass mehrere
 				Binarisierungsschritte notwendig sind. Dazu wird anhand des ersten Grenzwertes ein Teil des Bildes weiß eingefärbt und dann ein
-				zweiter Grenzwert bestimmt. Ein Beispiel ist in \autoref{fig: binarysation} gezeigt.
+				zweiter Grenzwert bestimmt. Die \autoref{fig: binarysation} zeigt das fertig binarisierte Bild nach dem zweiten Schritt.
 
 				\begin{figure}
 					\subfigure[Gefiltertes Bild]{\includegraphics[width=0.475\textwidth]{img/smoothed.png}}
@@ -247,7 +257,7 @@
 
 				\begin{figure}
 					\includegraphics[width=0.475\textwidth]{img/boxes.png}
-					\caption{Im Bild gefundene Textbox} \label{fig: textbox}
+					\caption{Im Bild gefundene Textbox} \label{fig: boxes}
 				\end{figure}
 
 
@@ -256,8 +266,8 @@
 				Die gefundenen Boxen liefern direkt eine Winkelinformation. Mit dieser und der Bildgröße lässt sich eine Rotationsmatrix erzeugen mit
 				deren Hilfe das Originalbild rotiert wird. Gleichzeitig wird auch die Box rotiert und aus dem Bild ausgeschnitten.
 
-				Da er Text auch vertikal sein kann, wird dies anhand des Seitenverhältnisses überprüft. Ist der Bildausschnitt höher als Breit, wird
-				er um $90\degree$ rotiert.
+				Da der Text auch vertikal ausgerichtet sein kann, wird dies anhand des Seitenverhältnisses überprüft. Ist der Bildausschnitt höher als
+				Breit, wird er um $90\degree$ rotiert.
 
 				\autoref{fig: textbox} zeigt, wie das Ergebnis bei diesem Beispiel aussieht.
 
@@ -278,8 +288,8 @@
 
 
 			\subsection{Textanalyse des Ergebnisses} \label{sub: textanalyse}
-				Der von Tesseract gefundene Text wird zum Abschluss analysiert und mit der Liste an gültigen Codes verglichen. Dadruch werden
-				weiter Beschriftungen oder Hersteller-Logos herausgefiltert.
+				Der von Tesseract gefundene Text wird zum Abschluss analysiert und mit der Liste an gültigen Codes verglichen. Dadurch werden
+				weitere Beschriftungen oder Hersteller-Logos herausgefiltert.
 
 				Alle Funktionalitäten hierfür sind in die Datei \lstinline{src/findcodes.py} ausgelagert. Hier ist ein regulärer Ausdruck definiert,
 				welcher die Voraussetzung, das gültige Codes mit 2-3 Großbuchstaben beginnen und darauf 5-9 Ziffern folgen, abbildet. Dies wir mit dem
@@ -333,6 +343,11 @@
 			Ist das Programm gepackaged, kann der Ordner einfach gezippt und auf den Panel-PC kopiert werden.
 
 
+	\chapter{Zusammenfassung} \label{chap: zusammenfassung}
+
+		\textcolor{red}{TODO}
+
+
 	\clearpage
 	\begin{minipage}{\textwidth}
 		\printbibliography