diff --git a/.vscode/ltex.dictionary.de-DE.txt b/.vscode/ltex.dictionary.de-DE.txt index 0f5304b644693ba0888da0e46b7c8ec1e5520a3b..f49f9fee6e6b3f5b410fda2e7cedcc4e494c3082 100644 --- a/.vscode/ltex.dictionary.de-DE.txt +++ b/.vscode/ltex.dictionary.de-DE.txt @@ -11,3 +11,5 @@ Flag OpenCV Otsu Binarisierungsschritte +Kernelgröße +Gemorphtes diff --git a/.vscode/ltex.hiddenFalsePositives.de-DE.txt b/.vscode/ltex.hiddenFalsePositives.de-DE.txt index d1ad9ec2d6d75ad19b8f7b7dd4364ca080dffe88..5d332d13221b70aedc20092c78ee366d9d5f7fd3 100644 --- a/.vscode/ltex.hiddenFalsePositives.de-DE.txt +++ b/.vscode/ltex.hiddenFalsePositives.de-DE.txt @@ -12,3 +12,5 @@ {"rule":"GERMAN_SPELLER_RULE","sentence":"^\\QDer erste Filterschritt entfernt die sogenannten Salt&Pepper Störungen.\\E$"} {"rule":"GERMAN_SPELLER_RULE","sentence":"^\\QDiese Funktionalität ist in der Funktion preprocessing.smooth_image() implementiert, welche ein Bild als Parameter annimmt und die gefilterte Version zurückgibt.\\E$"} {"rule":"GERMAN_SPELLER_RULE","sentence":"^\\QImplementiert ist dies in der Funktion preprocessing.make_binary_image().\\E$"} +{"rule":"GERMAN_SPELLER_RULE","sentence":"^\\QDiese sind in der Funktion preprocessing.morphologic_close() implementiert.\\E$"} +{"rule":"DE_AGREEMENT","sentence":"^\\QZuerst wird eine Closing Operation mit einem Rechteck-Kernel angewandt.\\E$"} diff --git a/Praxisbericht.pdf b/Praxisbericht.pdf index ae443b69d5be72e6e1efb4e098e2cfbf85053a89..b9bb255264cfd44315c5ac206506264df34ef5fb 100644 Binary files a/Praxisbericht.pdf and b/Praxisbericht.pdf differ diff --git a/Praxisbericht.tex b/Praxisbericht.tex index eb810b50b1245af74bdf454afa6c3d42c89e7c20..9ac0a62131d2a3c359fcb2123c5faa73ca3a4366 100644 --- a/Praxisbericht.tex +++ b/Praxisbericht.tex @@ -205,6 +205,24 @@ \subsection{Morphologische Operationen} \label{sub: morph} + Um einzelne, zufällig Störungen oder andere Objekte im Bild von tatsächlicher Schrift zu unterscheiden, werden einige morphologische + Operationen angewandt. Diese sind in der Funktion \lstinline{preprocessing.morphologic_close()} implementiert. + + Zuerst wird eine \emph{Closing} Operation mit einem Rechteck-Kernel angewandt. Die Kernelgröße entspricht dabei ungefähr der + erwarteten Größe eines Buchstabens. Dadurch werden Buchstaben zu Rechtecken und kleine Lücken zwischen den Buchstaben werden + geschlossen. Schriftzüge werden dadurch zu langgezogenen Boxen, wie in \autoref{fig: morphing} gut zu erkennen ist. + + Um verbleibende kleine Störungen zu eliminieren, wird das Bild außerdem zuerst \emph{erodiert} und danach \emph{dilatiert}. Durch die + Erosion werden alle Umrisse verkleinert, wobei kleine Objekte ganz verschwinden. Danach wird durch die Dilatation der + Ursprungszustand wieder hergestellt. + + \begin{figure} + \subfigure[Binarisiertes Bild]{\includegraphics[width=0.475\textwidth]{img/binary.png}} + \hfill + \subfigure[Gemorphtes Bild]{\includegraphics[width=0.475\textwidth]{img/morphed.png}} + \caption{Vergleich eines Bildes vor und nach der morphologischen Operation} \label{fig: morphing} + \end{figure} + \subsection{Finden und filtern von Konturen} \label{sub: contours} \subsection{Rotieren der gefundenen Sektionen} \label{sub: rotate} \subsection{Übergabe an Tesseract} \label{sub: call tesseract} diff --git a/img/morphed.png b/img/morphed.png new file mode 100644 index 0000000000000000000000000000000000000000..bb8bfb1788e954c6b40dd114278a7878ad77055a Binary files /dev/null and b/img/morphed.png differ