diff --git a/Praxisbericht.pdf b/Praxisbericht.pdf index 61cdb36a4806dee3524297408bc1e65b9970cabb..82a30ae7ab36b6e52b7f823d6bd9947463cb8ecb 100644 Binary files a/Praxisbericht.pdf and b/Praxisbericht.pdf differ diff --git a/Praxisbericht.tex b/Praxisbericht.tex index 37a9a4d28e6aea829fafe117c8dc9fa8f925b010..bcbccaade6f8b85f4d921c636198c73a6f567885 100644 --- a/Praxisbericht.tex +++ b/Praxisbericht.tex @@ -143,7 +143,7 @@ \begin{table} \caption{Erklärungen zur Projektstruktur} \label{tab: struktur} \renewcommand*{\arraystretch}{1.25} - \begin{tabular}{l p{.6\textwidth}} + \begin{tabular}{@{}l p{.6\textwidth}@{}} \textit{Ordner/Dateiname} & \textit{Erklärung}\\ \hline \texttt{.venv/} & Dieser Ordner wird beim Erzeugend des \emph{Virtual Enviroments} (siehe \ref{sec: bibliotheken}) @@ -170,14 +170,15 @@ \caption{Verwendete Pakete und ihre Funktion} \label{tab: bibliotheken} \renewcommand*{\arraystretch}{1.25} \begin{tabular}{@{}r p{.6\textwidth}@{}} - \multicolumn{2}{@{}l}{\textit{Runtime Pakete:} } \\ + \multicolumn{2}{@{}l}{\textit{Runtime Pakete:} } \\\hline \texttt{opencv-python} \cite{pypi:python-opencv} & Ein Wrapper für das OpenCV Framework \cite{opencv}. Stellt eine Reihe an Funktionen für die Bildverarbeitung zur Verfügung. Ein Großteil aller verwendeten Algorithmen sind hier implementiert. \\ \texttt{numpy} \cite{pypi:numpy} & Eine Bibliothek zu schnellen Verarbeitung großer Datenstrukturen (insbesondere Matrizen). Sie liegt den Bild-Datentypen in \texttt{opencv-python} zugrunde. \\ \texttt{pytesseract} \cite{pypi:pytesseract} & Wrapper für das OCR-Programm \emph{Tesseract} \cite{tesseract}. Dieses für die eigentliche Texterkennung durch und kann durch diese Bibliothek bedient werden. \\ - \multicolumn{2}{@{}l}{\textit{Pakete für die Entwicklung:}} \\ + \\[-3ex] + \multicolumn{2}{@{}l}{\textit{Pakete für die Entwicklung:}} \\\hline \texttt{pyinstaller} \cite{pypi:pyinstaller} & Eine Bibliothek zum Verpacken eines Pythonprogrammes in ein alleinstehendes Programm. \\ \texttt{black} & Python Formatierungsprogramm. \\ @@ -191,6 +192,7 @@ Unterordner dieses Projektes abgelegt und nur diesem Projekt zur Verfügung gestellt. Dazu werden die folgenden Befehle oder das Makefilerezept \lstinline{setup} verwendet. + \medskip \begin{lstlisting}[language=bash,gobble=16] # virual env erstellen: python -m venv .venv @@ -199,6 +201,7 @@ # pakete installieren: pip install -r requirements.txt \end{lstlisting} + \medskip Der Quellcode des Projektes befindet sich im Unterordner \lstinline{./src}. Dort befindet sich die Datei \lstinline{__main__.py}, als Haupteinstiegspunkt des Programms, sowie alle weiteren selbsterstellten Pakete. Das Programm wird also mittels @@ -212,6 +215,7 @@ folgen eine beliebig lange Reihe an gültigen Codes. Über die Flag \lstinline{-h} kann außerdem eine Hilfe aufgerufen werden, die die Benutzung erklärt und nachfolgend abgedruckt ist. + \medskip \begin{lstlisting}[language=,gobble=16] usage: __main__.py [-h] imagepath code [code ...] @@ -222,6 +226,7 @@ options: -h, --help show this help message and exit \end{lstlisting} + \medskip Die Kommandozeilenparameter werden direkt an die Funktion \lstinline{main()} übergeben, die alternativ zur Nutzung über die Kommandozeile von anderen Python-Programmen importiert und aufgerufen werden kann. @@ -373,6 +378,7 @@ \lstinline{main()} mit diesen Parametern das erwartete Ergebnis liefert. Die Funktion kann also leicht an aktuelle Bilder angepasst werden. Hier der entsprechende code: + \medskip \begin{lstlisting}[gobble=16] valid_codes = ["SIE20220101", "FAT3264128"] @pytest.mark.parametrize( @@ -385,6 +391,7 @@ def test_knownimages(path, contained_codes): assert contained_codes == main(path, valid_codes) \end{lstlisting} + \medskip Um die Tests durchzuführen, kann direkt der Befehl \lstinline{pytest} oder das Makefilerezept \emph{test} verwendet werden.