diff --git a/.vscode/ltex.dictionary.de-DE.txt b/.vscode/ltex.dictionary.de-DE.txt index 1a2cdd2d7d9c74534607d44c476feee136523e26..0f5304b644693ba0888da0e46b7c8ec1e5520a3b 100644 --- a/.vscode/ltex.dictionary.de-DE.txt +++ b/.vscode/ltex.dictionary.de-DE.txt @@ -8,3 +8,6 @@ Objektivlänge PoE Tesseract Flag +OpenCV +Otsu +Binarisierungsschritte diff --git a/.vscode/ltex.hiddenFalsePositives.de-DE.txt b/.vscode/ltex.hiddenFalsePositives.de-DE.txt index ba1eb4c39101a316d0b4eaa0d617cd933d0fd282..d1ad9ec2d6d75ad19b8f7b7dd4364ca080dffe88 100644 --- a/.vscode/ltex.hiddenFalsePositives.de-DE.txt +++ b/.vscode/ltex.hiddenFalsePositives.de-DE.txt @@ -11,3 +11,4 @@ {"rule":"DE_CASE","sentence":"^\\Q[Originalbild direkt von der Kamera] [Gefiltertes Bild] Vergleich eines Bildes vor und nach der Filterung\\E$"} {"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$"} diff --git a/Praxisbericht.tex b/Praxisbericht.tex index daa084d8714ec8c8fdf0a1a0e395384d527c8efb..eb810b50b1245af74bdf454afa6c3d42c89e7c20 100644 --- a/Praxisbericht.tex +++ b/Praxisbericht.tex @@ -183,9 +183,27 @@ \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 - verbessern. + verbessern. Implementiert ist dies in der Funktion \lstinline{preprocessing.make_binary_image()}. \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. + + 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 Test hat sich ergeben, dass die Beleuchtung und andere Faktoren so unterschiedliche 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. + + \begin{figure} + \subfigure[Gefiltertes Bild]{\includegraphics[width=0.475\textwidth]{img/smoothed.png}} + \hfill + \subfigure[Binarisiertes Bild]{\includegraphics[width=0.475\textwidth]{img/binary.png}} + \caption{Vergleich eines Bildes vor und nach der Binarisierung} \label{fig: binarysation} + \end{figure} + + \subsection{Morphologische Operationen} \label{sub: morph} \subsection{Finden und filtern von Konturen} \label{sub: contours} \subsection{Rotieren der gefundenen Sektionen} \label{sub: rotate} diff --git a/img/binary.png b/img/binary.png new file mode 100644 index 0000000000000000000000000000000000000000..0a36ca9cc88f41f4f8bb3a1a95dec89a91a0c67a Binary files /dev/null and b/img/binary.png differ