diff --git a/.vscode/ltex.dictionary.de-DE.txt b/.vscode/ltex.dictionary.de-DE.txt index d860e55ba7e75d04308e8f2be2c5d5d1104c4e01..b951f4a2b5252ff5e2ea723543c7d855f0b58e51 100644 --- a/.vscode/ltex.dictionary.de-DE.txt +++ b/.vscode/ltex.dictionary.de-DE.txt @@ -23,3 +23,4 @@ venv pytest tesseract Python-Syntaxchecker +Syntaxchecker diff --git a/.vscode/ltex.hiddenFalsePositives.de-DE.txt b/.vscode/ltex.hiddenFalsePositives.de-DE.txt index 954fbe6f17dc67e0b66a0e80826890eefdf97669..7d682e6ca38076d921fe92ea37c6b79a1a1f02e1 100644 --- a/.vscode/ltex.hiddenFalsePositives.de-DE.txt +++ b/.vscode/ltex.hiddenFalsePositives.de-DE.txt @@ -24,3 +24,13 @@ {"rule":"GERMAN_SPELLER_RULE","sentence":"^\\QIn ihn werden alle Bibliotheken für das venv installiert src/ Hier befinden sich die eigentlichen Quellcodedateien tesseract/ Die binären Dateien für das Programm Tesseract befinden sich hier tests/ Die Testscripte für pytest befinden sich hier tests/img/ Ein Ablageort für Testbilder .flake8 Konfigurationsdatei für den Python-Syntaxchecker flake8 .gitignore Diese Datei enthält Informationen für Git, welche Dateien/Ordner ignoriert werden sollen Makefile Das Makefile enthält Befehle oder Befehlsketten die für das Arbeiten mit dem Projekt relevant sein können README.md Eine Textdatei im Markdownformat die eine Projektbeschreibung enthält requirements.txt Diese Datei enthält eine Liste aller benötigten Bibliotheken (siehe \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q)\\E$"} {"rule":"DE_CASE","sentence":"^\\QIn ihn werden alle Bibliotheken für das venv installiert src/ Hier befinden sich die eigentlichen Quellcodedateien tesseract/ Die binären Dateien für das Programm Tesseract befinden sich hier tests/ Die Testscripte für pytest befinden sich hier tests/img/ Ein Ablageort für Testbilder .flake8 Konfigurationsdatei für den Python-Syntaxchecker flake8 .gitignore Diese Datei enthält Informationen für Git, welche Dateien/Ordner ignoriert werden sollen Makefile Das Makefile enthält Befehle oder Befehlsketten die für das Arbeiten mit dem Projekt relevant sein können README.md Eine Textdatei im Markdownformat die eine Projektbeschreibung enthält requirements.txt Diese Datei enthält eine Liste aller benötigten Bibliotheken (siehe \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q)\\E$"} {"rule":"COMMA_PARENTHESIS_WHITESPACE","sentence":"^\\QIn ihn werden alle Bibliotheken für das venv installiert src/ Hier befinden sich die eigentlichen Quellcodedateien tesseract/ Die binären Dateien für das Programm Tesseract befinden sich hier tests/ Die Testscripte für pytest befinden sich hier tests/img/ Ein Ablageort für Testbilder .flake8 Konfigurationsdatei für den Python-Syntaxchecker flake8 .gitignore Diese Datei enthält Informationen für Git, welche Dateien/Ordner ignoriert werden sollen Makefile Das Makefile enthält Befehle oder Befehlsketten die für das Arbeiten mit dem Projekt relevant sein können README.md Eine Textdatei im Markdownformat die eine Projektbeschreibung enthält requirements.txt Diese Datei enthält eine Liste aller benötigten Bibliotheken (siehe \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q)\\E$"} +{"rule":"GERMAN_SPELLER_RULE","sentence":"^\\QVerwendete Pakete und ihre Funktion Runtime Pakete: opencv-python \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q Ein Wrapper für das OpenCV Framework \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q.\\E$"} +{"rule":"DE_CASE","sentence":"^\\QVerwendete Pakete und ihre Funktion Runtime Pakete: opencv-python \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q Ein Wrapper für das OpenCV Framework \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q.\\E$"} +{"rule":"UPPERCASE_SENTENCE_START","sentence":"^\\Qnumpy \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q Eine Bibliothek zu schnellen Verarbeitung großer Datenstrukturen (insbesondere Matrizen).\\E$"} +{"rule":"DE_CASE","sentence":"^\\Qnumpy \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q Eine Bibliothek zu schnellen Verarbeitung großer Datenstrukturen (insbesondere Matrizen).\\E$"} +{"rule":"UPPERCASE_SENTENCE_START","sentence":"^\\Qpytesseract \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q Wrapper für das OCR-Programm Tesseract \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q.\\E$"} +{"rule":"GERMAN_SPELLER_RULE","sentence":"^\\QSie liegt den Bild-Datentypen in opencv-python zugrunde.\\E$"} +{"rule":"UPPERCASE_SENTENCE_START","sentence":"^\\Qblack Python formatierungs Programm.\\E$"} +{"rule":"UPPERCASE_SENTENCE_START","sentence":"^\\Qflake8 Python Syntaxchecker.\\E$"} +{"rule":"UPPERCASE_SENTENCE_START","sentence":"^\\Qpytest Python Unittest Framework.\\E$"} +{"rule":"DE_CASE","sentence":"^\\QPakete für die Entwicklung: pyinstaller \\E(?:Dummy|Ina|Jimmy-)[0-9]+\\Q Eine Bibliothek zum Verpacken eines Pythonprogrammes in ein alleinstehendes Programm.\\E$"} diff --git a/Praxisbericht.pdf b/Praxisbericht.pdf index 8548aef63b779155cce5f1d4e5306fd2b955a711..7f96edeb85e809e5980fbc0d0caf81ac31e2e078 100644 Binary files a/Praxisbericht.pdf and b/Praxisbericht.pdf differ diff --git a/Praxisbericht.tex b/Praxisbericht.tex index 449744749da4d9c0792e8d801e165b3d37ccdd2e..346cbf37ee6b8b748798ff3f8bd1a4ee60366e8c 100644 --- a/Praxisbericht.tex +++ b/Praxisbericht.tex @@ -3,7 +3,7 @@ % include packages here \usepackage{graphicx} \usepackage{hyperref} -\usepackage{biblatex} +\usepackage[style=numeric,sorting=none]{biblatex} \usepackage{subfigure} \usepackage{siunitx} \usepackage{listings} @@ -161,16 +161,37 @@ \end{table} - \section{Verwendete Bibliotheken} \label{sec: bibliotheken} + \section{Verwendete Pakete} \label{sec: bibliotheken} - \textcolor{red}{TODO} + Dieses Projekt verwendet einige Pakete. Diese sind in der Datei \lstinline{requirements.txt} aufgelistet. Außerdem ist eine kurze + Zusammenfassung ihrer Funktion in \autoref{tab: bibliotheken} zu finden. - 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{table} + \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:} } \\ + \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:}} \\ + \texttt{pyinstaller} \cite{pypi:pyinstaller} & Eine Bibliothek zum Verpacken eines Pythonprogrammes in ein alleinstehendes + Programm. \\ + \texttt{black} & Python formatierungs Programm. \\ + \texttt{flake8} & Python Syntaxchecker. \\ + \texttt{pytest} & Python Unittest Framework. Ermöglicht automatisiertes Testen. \\ + \end{tabular} + \end{table} + + Um das Projekt zum ersten Mal auf einen neuen Computer zu benutzen, müssen diese 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] + \begin{lstlisting}[language=bash,gobble=16] # virual env erstellen: python -m venv .venv # venv für diese Terminal-Session aktiviren (windows): @@ -183,6 +204,7 @@ 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). + \pagebreak \section{Schnittstelle} \label{sec: interface} Da das Softwaremodule von einem übergeordneten Programm aufgerufen wird, erhält es beim Start von diesem die Nötigen Informationen. Diese @@ -238,6 +260,7 @@ verbessern. + \pagebreak \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 Features enthalten sind. Implementiert ist dies in der Funktion \lstinline{preprocessing.make_binary_image()}. diff --git a/bib/localBibliography.bib b/bib/localBibliography.bib index fd462354d0d0da2b3c429622122815a59a62111d..7bc4bf57a34bf6fe17e53c9e0f390628794e8dd3 100644 --- a/bib/localBibliography.bib +++ b/bib/localBibliography.bib @@ -4,6 +4,47 @@ date = {2018-07-16}, language = {GER} } +@online{pypi:python-opencv, + title = {Python Package Index - opencv-python}, + date = {2022-03-09}, + url = {https://pypi.org/project/opencv-python/}, + urldate = {2022-05-02}, + language = {ENG} +} +@online{opencv, + title = {OpenCV}, + year = {2022}, + url = {https://opencv.org/}, + urldate = {2022-05-02}, + language = {ENG} +} +@online{pypi:numpy, + title = {Python Package Index - numpy}, + url = {https://pypi.org/project/numpy/}, + urldate = {2022-03-07}, + language = {ENG} +} +@online{pypi:pytesseract, + title = {Python Package Index - pytesseract}, + date = {2022-02-19}, + url = {https://pypi.org/project/pytesseract/}, + urldate = {2022-05-02}, + language = {ENG} +} +@online{tesseract, + title = {Tesseract User Manual}, + date = {2022-04-24}, + url = {https://tesseract-ocr.github.io/tessdoc/}, + urldate = {2022-05-02}, + language = {ENG} +} +@online{pypi:pyinstaller, + title = {Python Package Index - pyinstaller}, + date = {2022-04-25}, + url = {https://pypi.org/project/pyinstaller/}, + urldate = {2022-05-02}, + language = {ENG} +} %-----------------------Templates-------------------------------------------------------- % A single-volume book with one or more authors @book{1, @@ -64,15 +105,7 @@ language = {} } % web sites which are intrinsically online resources -@online{5, - author = {}, - title = {}, - date = {}, - year = {}, - url = {}, - urldate = {}, - language = {} -} + % a Thesis @phdthesis{6, author = {},