Finish coding

This commit is contained in:
2025-07-03 17:55:33 +02:00
parent cc5199146a
commit 5c7067e255
14 changed files with 849 additions and 825 deletions

View File

@@ -1,31 +1,16 @@
\relax \relax
\providecommand\hyper@newdestlabel[2]{}
\gdef\pagesLTS@loaded{p@gesLTSnotlo@ded} \gdef\pagesLTS@loaded{p@gesLTSnotlo@ded}
\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument} \providecommand\hyper@newdestlabel[2]{}
\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined
\global\let\oldcontentsline\contentsline
\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}}
\global\let\oldnewlabel\newlabel
\gdef\newlabel#1#2{\newlabelxx{#1}#2}
\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}}
\AtEndDocument{\ifx\hyper@anchor\@undefined
\let\contentsline\oldcontentsline
\let\newlabel\oldnewlabel
\fi}
\fi}
\global\let\hyper@last\relax
\gdef\HyperFirstAtBeginDocument#1{#1}
\providecommand\HyField@AuxAddToFields[1]{} \providecommand\HyField@AuxAddToFields[1]{}
\providecommand\HyField@AuxAddToCoFields[2]{} \providecommand\HyField@AuxAddToCoFields[2]{}
\providecommand\babel@aux[2]{}
\@nameuse{bbl@beforestart}
\catcode `"\active \catcode `"\active
\newlabel{pagesLTS.0}{{}{1}{}{page.1}{}} \newlabel{pagesLTS.0}{{}{1}{}{page.1}{}}
\newlabel{pagesLTS.0.local}{{}{1}{}{page.1}{}} \newlabel{pagesLTS.0.local}{{}{1}{}{page.1}{}}
\providecommand \oddpage@label [2]{} \providecommand \oddpage@label [2]{}
\reset@newl@bel \reset@newl@bel
\select@language{ngerman} \babel@aux{ngerman}{}
\@writefile{toc}{\select@language{ngerman}}
\@writefile{lof}{\select@language{ngerman}}
\@writefile{lot}{\select@language{ngerman}}
\@input{sections/overview.aux} \@input{sections/overview.aux}
\@input{sections/a.aux} \@input{sections/a.aux}
\@input{sections/a1.aux} \@input{sections/a1.aux}
@@ -43,3 +28,4 @@
\newlabel{pagesLTS.arabic}{{}{17}{}{page.17}{}} \newlabel{pagesLTS.arabic}{{}{17}{}{page.17}{}}
\newlabel{pagesLTS.arabic.local}{{}{17}{}{page.17}{}} \newlabel{pagesLTS.arabic.local}{{}{17}{}{page.17}{}}
\newlabel{LastPages}{{}{17}{}{page.17}{}} \newlabel{LastPages}{{}{17}{}{page.17}{}}
\gdef \@abspage@last{17}

File diff suppressed because it is too large Load Diff

View File

@@ -1,15 +1,15 @@
\BOOKMARK [1][-]{section.1}{Einleitung}{}% 1 \BOOKMARK [1][-]{section.1}{\376\377\000E\000i\000n\000l\000e\000i\000t\000u\000n\000g}{}% 1
\BOOKMARK [2][-]{subsection.1.1}{Vorbereitung}{section.1}% 2 \BOOKMARK [2][-]{subsection.1.1}{\376\377\000V\000o\000r\000b\000e\000r\000e\000i\000t\000u\000n\000g}{section.1}% 2
\BOOKMARK [2][-]{subsection.1.2}{Programmierumgebung}{section.1}% 3 \BOOKMARK [2][-]{subsection.1.2}{\376\377\000P\000r\000o\000g\000r\000a\000m\000m\000i\000e\000r\000u\000m\000g\000e\000b\000u\000n\000g}{section.1}% 3
\BOOKMARK [1][-]{section.2}{Aufgabe}{}% 4 \BOOKMARK [1][-]{section.2}{\376\377\000A\000u\000f\000g\000a\000b\000e}{}% 4
\BOOKMARK [2][-]{subsection.2.1}{Vorverarbeitung}{section.2}% 5 \BOOKMARK [2][-]{subsection.2.1}{\376\377\000V\000o\000r\000v\000e\000r\000a\000r\000b\000e\000i\000t\000u\000n\000g}{section.2}% 5
\BOOKMARK [3][-]{subsubsection.2.1.1}{Rauschreduktion}{subsection.2.1}% 6 \BOOKMARK [3][-]{subsubsection.2.1.1}{\376\377\000R\000a\000u\000s\000c\000h\000r\000e\000d\000u\000k\000t\000i\000o\000n}{subsection.2.1}% 6
\BOOKMARK [3][-]{subsubsection.2.1.2}{Histogramm Spreizung}{subsection.2.1}% 7 \BOOKMARK [3][-]{subsubsection.2.1.2}{\376\377\000H\000i\000s\000t\000o\000g\000r\000a\000m\000m\000\040\000S\000p\000r\000e\000i\000z\000u\000n\000g}{subsection.2.1}% 7
\BOOKMARK [2][-]{subsection.2.2}{Farbanalyse}{section.2}% 8 \BOOKMARK [2][-]{subsection.2.2}{\376\377\000F\000a\000r\000b\000a\000n\000a\000l\000y\000s\000e}{section.2}% 8
\BOOKMARK [3][-]{subsubsection.2.2.1}{RGB}{subsection.2.2}% 9 \BOOKMARK [3][-]{subsubsection.2.2.1}{\376\377\000R\000G\000B}{subsection.2.2}% 9
\BOOKMARK [3][-]{subsubsection.2.2.2}{HSV}{subsection.2.2}% 10 \BOOKMARK [3][-]{subsubsection.2.2.2}{\376\377\000H\000S\000V}{subsection.2.2}% 10
\BOOKMARK [2][-]{subsection.2.3}{Segmentierung und Bildmodifizierung}{section.2}% 11 \BOOKMARK [2][-]{subsection.2.3}{\376\377\000S\000e\000g\000m\000e\000n\000t\000i\000e\000r\000u\000n\000g\000\040\000u\000n\000d\000\040\000B\000i\000l\000d\000m\000o\000d\000i\000f\000i\000z\000i\000e\000r\000u\000n\000g}{section.2}% 11
\BOOKMARK [3][-]{subsubsection.2.3.1}{Statisches Schwellwertverfahren}{subsection.2.3}% 12 \BOOKMARK [3][-]{subsubsection.2.3.1}{\376\377\000S\000t\000a\000t\000i\000s\000c\000h\000e\000s\000\040\000S\000c\000h\000w\000e\000l\000l\000w\000e\000r\000t\000v\000e\000r\000f\000a\000h\000r\000e\000n}{subsection.2.3}% 12
\BOOKMARK [3][-]{subsubsection.2.3.2}{Bin\344rmaske}{subsection.2.3}% 13 \BOOKMARK [3][-]{subsubsection.2.3.2}{\376\377\000B\000i\000n\000\344\000r\000m\000a\000s\000k\000e}{subsection.2.3}% 13
\BOOKMARK [3][-]{subsubsection.2.3.3}{Bildmodifizierung}{subsection.2.3}% 14 \BOOKMARK [3][-]{subsubsection.2.3.3}{\376\377\000B\000i\000l\000d\000m\000o\000d\000i\000f\000i\000z\000i\000e\000r\000u\000n\000g}{subsection.2.3}% 14
\BOOKMARK [1][-]{section.3}{Zusammenfassung}{}% 15 \BOOKMARK [1][-]{section.3}{\376\377\000Z\000u\000s\000a\000m\000m\000e\000n\000f\000a\000s\000s\000u\000n\000g}{}% 15

Binary file not shown.

Binary file not shown.

View File

@@ -54,8 +54,8 @@
\vspace{2cm} \vspace{2cm}
\begin{tabular}{@{}p{4cm}l} \begin{tabular}{@{}p{4cm}l}
Datum: & XX.XX.XXXX \\ Datum: & 27.06.2025 \\
Uhrzeit: & XX:XX \\ Uhrzeit: & 08:00 \\
Anzahl der Bl\"{a}tter: & \lastpageref*{LastPages} (einschlie\ss{}lich Deckblatt) Anzahl der Bl\"{a}tter: & \lastpageref*{LastPages} (einschlie\ss{}lich Deckblatt)
\end{tabular} \end{tabular}
@@ -64,16 +64,16 @@
\begin{tabular}{@{}p{4cm} l } \begin{tabular}{@{}p{4cm} l }
{\normalfont\bfseries Name:} & {\normalfont\bfseries Matrikelnummer:}\\ {\normalfont\bfseries Name:} & {\normalfont\bfseries Matrikelnummer:}\\
$\underline{\hspace{5cm}}$ \hspace{0.5cm}& $\underline{\hspace{5cm}}$ \\ Koussai Hamraoui\hspace{0.5cm}&10049868\\
$\underline{\hspace{5cm}}$ \hspace{0.5cm}& $\underline{\hspace{5cm}}$\\ Alexander Gossmann \hspace{0.5cm}&3217770 \\
$\underline{\hspace{5cm}}$ \hspace{0.5cm}& $\underline{\hspace{5cm}}$\\ Tobias Zoghaib \hspace{0.5cm}&10019865\\
\end{tabular} \end{tabular}
\vspace{2.0cm} \vspace{2.0cm}
Die Bearbeitung der Aufgaben erfolgt selbstst<73>ndig in Kleingruppen. Alle Gruppenmitglieder sollen Arbeitsaufwand in gleicher Gr<47><72>enordnung einbringen. Betrugsversuche werden geahndet. Die Bearbeitung der Aufgaben erfolgt selbstst<73>ndig in Kleingruppen. Alle Gruppenmitglieder sollen Arbeitsaufwand in gleicher Gr<47><72>enordnung einbringen. Betrugsversuche werden geahndet.
\pagebreak
\tableofcontents \tableofcontents
\include{sections/overview} \include{sections/overview}

View File

@@ -1,16 +1,16 @@
\select@language {ngerman} \babel@toc {ngerman}{}\relax
\contentsline {section}{\numberline {1}Einleitung}{3}{section.1} \contentsline {section}{\numberline {1}Einleitung}{3}{section.1}%
\contentsline {subsection}{\numberline {1.1}Vorbereitung}{4}{subsection.1.1} \contentsline {subsection}{\numberline {1.1}Vorbereitung}{4}{subsection.1.1}%
\contentsline {subsection}{\numberline {1.2}Programmierumgebung}{5}{subsection.1.2} \contentsline {subsection}{\numberline {1.2}Programmierumgebung}{5}{subsection.1.2}%
\contentsline {section}{\numberline {2}Aufgabe}{8}{section.2} \contentsline {section}{\numberline {2}Aufgabe}{8}{section.2}%
\contentsline {subsection}{\numberline {2.1}Vorverarbeitung}{10}{subsection.2.1} \contentsline {subsection}{\numberline {2.1}Vorverarbeitung}{10}{subsection.2.1}%
\contentsline {subsubsection}{\numberline {2.1.1}Rauschreduktion}{10}{subsubsection.2.1.1} \contentsline {subsubsection}{\numberline {2.1.1}Rauschreduktion}{10}{subsubsection.2.1.1}%
\contentsline {subsubsection}{\numberline {2.1.2}Histogramm Spreizung}{11}{subsubsection.2.1.2} \contentsline {subsubsection}{\numberline {2.1.2}Histogramm Spreizung}{11}{subsubsection.2.1.2}%
\contentsline {subsection}{\numberline {2.2}Farbanalyse}{12}{subsection.2.2} \contentsline {subsection}{\numberline {2.2}Farbanalyse}{12}{subsection.2.2}%
\contentsline {subsubsection}{\numberline {2.2.1}RGB}{12}{subsubsection.2.2.1} \contentsline {subsubsection}{\numberline {2.2.1}RGB}{12}{subsubsection.2.2.1}%
\contentsline {subsubsection}{\numberline {2.2.2}HSV}{13}{subsubsection.2.2.2} \contentsline {subsubsection}{\numberline {2.2.2}HSV}{13}{subsubsection.2.2.2}%
\contentsline {subsection}{\numberline {2.3}Segmentierung und Bildmodifizierung}{14}{subsection.2.3} \contentsline {subsection}{\numberline {2.3}Segmentierung und Bildmodifizierung}{14}{subsection.2.3}%
\contentsline {subsubsection}{\numberline {2.3.1}Statisches Schwellwertverfahren}{14}{subsubsection.2.3.1} \contentsline {subsubsection}{\numberline {2.3.1}Statisches Schwellwertverfahren}{14}{subsubsection.2.3.1}%
\contentsline {subsubsection}{\numberline {2.3.2}Bin\"armaske}{15}{subsubsection.2.3.2} \contentsline {subsubsection}{\numberline {2.3.2}Bin\"armaske}{15}{subsubsection.2.3.2}%
\contentsline {subsubsection}{\numberline {2.3.3}Bildmodifizierung}{15}{subsubsection.2.3.3} \contentsline {subsubsection}{\numberline {2.3.3}Bildmodifizierung}{15}{subsubsection.2.3.3}%
\contentsline {section}{\numberline {3}Zusammenfassung}{17}{section.3} \contentsline {section}{\numberline {3}Zusammenfassung}{17}{section.3}%

View File

@@ -1,7 +1,7 @@
\relax \relax
\providecommand\hyper@newdestlabel[2]{} \providecommand\hyper@newdestlabel[2]{}
\@writefile{toc}{\contentsline {section}{\numberline {2}Aufgabe}{8}{section.2}} \@writefile{toc}{\contentsline {section}{\numberline {2}Aufgabe}{8}{section.2}\protected@file@percent }
\@writefile{lof}{\contentsline {figure}{\numberline {5}{\ignorespaces Bildverarbeitungs-Pipeline}}{8}{figure.5}} \@writefile{lof}{\contentsline {figure}{\numberline {5}{\ignorespaces Bildverarbeitungs-Pipeline}}{8}{figure.5}\protected@file@percent }
\newlabel{fig:skizzepipeline}{{5}{8}{Bildverarbeitungs-Pipeline}{figure.5}{}} \newlabel{fig:skizzepipeline}{{5}{8}{Bildverarbeitungs-Pipeline}{figure.5}{}}
\@setckpt{sections/a}{ \@setckpt{sections/a}{
\setcounter{page}{10} \setcounter{page}{10}
@@ -26,12 +26,12 @@
\setcounter{pagesLTS.pagenr}{17} \setcounter{pagesLTS.pagenr}{17}
\setcounter{pagesLTS.current.local.0}{1} \setcounter{pagesLTS.current.local.0}{1}
\setcounter{pagesLTS.pnc.0}{0} \setcounter{pagesLTS.pnc.0}{0}
\setcounter{section@level}{1}
\setcounter{Item}{0} \setcounter{Item}{0}
\setcounter{Hfootnote}{2} \setcounter{Hfootnote}{2}
\setcounter{bookmark@seq@number}{4} \setcounter{bookmark@seq@number}{4}
\setcounter{lstnumber}{10} \setcounter{lstnumber}{10}
\setcounter{pagesLTS.arabic.1.local.cnt}{17} \setcounter{pagesLTS.arabic.1.local.cnt}{17}
\setcounter{section@level}{1}
\setcounter{lstlisting}{2} \setcounter{lstlisting}{2}
\setcounter{pagesLTS.pnc.arabic}{1} \setcounter{pagesLTS.pnc.arabic}{1}
\setcounter{pagesLTS.double.arabic}{1} \setcounter{pagesLTS.double.arabic}{1}

View File

@@ -1,13 +1,13 @@
\relax \relax
\providecommand\hyper@newdestlabel[2]{} \providecommand\hyper@newdestlabel[2]{}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.1}Vorverarbeitung}{10}{subsection.2.1}} \@writefile{toc}{\contentsline {subsection}{\numberline {2.1}Vorverarbeitung}{10}{subsection.2.1}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.1.1}Rauschreduktion}{10}{subsubsection.2.1.1}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {2.1.1}Rauschreduktion}{10}{subsubsection.2.1.1}\protected@file@percent }
\newlabel{lst:code1}{{3}{10}{Vorverarbeitung, Aufgabe 1}{lstlisting.3}{}} \newlabel{lst:code1}{{3}{10}{Vorverarbeitung, Aufgabe 1}{lstlisting.3}{}}
\@writefile{lol}{\contentsline {lstlisting}{\numberline {3}Vorverarbeitung, Aufgabe 1}{10}{lstlisting.3}} \@writefile{lol}{\contentsline {lstlisting}{\numberline {3}Vorverarbeitung, Aufgabe 1}{10}{lstlisting.3}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.1.2}Histogramm Spreizung}{11}{subsubsection.2.1.2}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {2.1.2}Histogramm Spreizung}{11}{subsubsection.2.1.2}\protected@file@percent }
\newlabel{equ:histogramm-equalization}{{3}{11}{Histogramm Spreizung}{equation.2.3}{}} \newlabel{equ:histogramm-equalization}{{3}{11}{Histogramm Spreizung}{equation.2.3}{}}
\newlabel{lst:code1}{{4}{11}{Vorverarbeitung, Aufgabe 4}{lstlisting.4}{}} \newlabel{lst:code1}{{4}{11}{Vorverarbeitung, Aufgabe 4}{lstlisting.4}{}}
\@writefile{lol}{\contentsline {lstlisting}{\numberline {4}Vorverarbeitung, Aufgabe 4}{11}{lstlisting.4}} \@writefile{lol}{\contentsline {lstlisting}{\numberline {4}Vorverarbeitung, Aufgabe 4}{11}{lstlisting.4}\protected@file@percent }
\@setckpt{sections/a1}{ \@setckpt{sections/a1}{
\setcounter{page}{12} \setcounter{page}{12}
\setcounter{equation}{3} \setcounter{equation}{3}
@@ -31,12 +31,12 @@
\setcounter{pagesLTS.pagenr}{17} \setcounter{pagesLTS.pagenr}{17}
\setcounter{pagesLTS.current.local.0}{1} \setcounter{pagesLTS.current.local.0}{1}
\setcounter{pagesLTS.pnc.0}{0} \setcounter{pagesLTS.pnc.0}{0}
\setcounter{section@level}{3}
\setcounter{Item}{0} \setcounter{Item}{0}
\setcounter{Hfootnote}{2} \setcounter{Hfootnote}{2}
\setcounter{bookmark@seq@number}{7} \setcounter{bookmark@seq@number}{7}
\setcounter{lstnumber}{2} \setcounter{lstnumber}{2}
\setcounter{pagesLTS.arabic.1.local.cnt}{17} \setcounter{pagesLTS.arabic.1.local.cnt}{17}
\setcounter{section@level}{3}
\setcounter{lstlisting}{4} \setcounter{lstlisting}{4}
\setcounter{pagesLTS.pnc.arabic}{1} \setcounter{pagesLTS.pnc.arabic}{1}
\setcounter{pagesLTS.double.arabic}{1} \setcounter{pagesLTS.double.arabic}{1}

View File

@@ -1,12 +1,12 @@
\relax \relax
\providecommand\hyper@newdestlabel[2]{} \providecommand\hyper@newdestlabel[2]{}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.2}Farbanalyse}{12}{subsection.2.2}} \@writefile{toc}{\contentsline {subsection}{\numberline {2.2}Farbanalyse}{12}{subsection.2.2}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.2.1}RGB}{12}{subsubsection.2.2.1}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {2.2.1}RGB}{12}{subsubsection.2.2.1}\protected@file@percent }
\newlabel{lst:Histogramm}{{5}{12}{Histogrammberechnung mit \textit {matplotlib}}{lstlisting.5}{}} \newlabel{lst:Histogramm}{{5}{12}{Histogrammberechnung mit \textit {matplotlib}}{lstlisting.5}{}}
\@writefile{lol}{\contentsline {lstlisting}{\numberline {5}Histogrammberechnung mit \textit {matplotlib}}{12}{lstlisting.5}} \@writefile{lol}{\contentsline {lstlisting}{\numberline {5}Histogrammberechnung mit \textit {matplotlib}}{12}{lstlisting.5}\protected@file@percent }
\newlabel{lst:code1}{{6}{13}{Farbanalyse, Aufgabe 1}{lstlisting.6}{}} \newlabel{lst:code1}{{6}{13}{Farbanalyse, Aufgabe 1}{lstlisting.6}{}}
\@writefile{lol}{\contentsline {lstlisting}{\numberline {6}Farbanalyse, Aufgabe 1}{13}{lstlisting.6}} \@writefile{lol}{\contentsline {lstlisting}{\numberline {6}Farbanalyse, Aufgabe 1}{13}{lstlisting.6}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.2.2}HSV}{13}{subsubsection.2.2.2}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {2.2.2}HSV}{13}{subsubsection.2.2.2}\protected@file@percent }
\newlabel{equ:segrule}{{5}{13}{Aufgabe 5}{equation.2.5}{}} \newlabel{equ:segrule}{{5}{13}{Aufgabe 5}{equation.2.5}{}}
\@setckpt{sections/a2}{ \@setckpt{sections/a2}{
\setcounter{page}{14} \setcounter{page}{14}
@@ -31,12 +31,12 @@
\setcounter{pagesLTS.pagenr}{17} \setcounter{pagesLTS.pagenr}{17}
\setcounter{pagesLTS.current.local.0}{1} \setcounter{pagesLTS.current.local.0}{1}
\setcounter{pagesLTS.pnc.0}{0} \setcounter{pagesLTS.pnc.0}{0}
\setcounter{section@level}{3}
\setcounter{Item}{0} \setcounter{Item}{0}
\setcounter{Hfootnote}{2} \setcounter{Hfootnote}{2}
\setcounter{bookmark@seq@number}{10} \setcounter{bookmark@seq@number}{10}
\setcounter{lstnumber}{2} \setcounter{lstnumber}{2}
\setcounter{pagesLTS.arabic.1.local.cnt}{17} \setcounter{pagesLTS.arabic.1.local.cnt}{17}
\setcounter{section@level}{3}
\setcounter{lstlisting}{6} \setcounter{lstlisting}{6}
\setcounter{pagesLTS.pnc.arabic}{1} \setcounter{pagesLTS.pnc.arabic}{1}
\setcounter{pagesLTS.double.arabic}{1} \setcounter{pagesLTS.double.arabic}{1}

View File

@@ -1,19 +1,19 @@
\relax \relax
\providecommand\hyper@newdestlabel[2]{} \providecommand\hyper@newdestlabel[2]{}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.3}Segmentierung und Bildmodifizierung}{14}{subsection.2.3}} \@writefile{toc}{\contentsline {subsection}{\numberline {2.3}Segmentierung und Bildmodifizierung}{14}{subsection.2.3}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.3.1}Statisches Schwellwertverfahren}{14}{subsubsection.2.3.1}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {2.3.1}Statisches Schwellwertverfahren}{14}{subsubsection.2.3.1}\protected@file@percent }
\newlabel{lst:conditions}{{7}{14}{Benutzung von Randbedingungen mit \textit {numpy}}{lstlisting.7}{}} \newlabel{lst:conditions}{{7}{14}{Benutzung von Randbedingungen mit \textit {numpy}}{lstlisting.7}{}}
\@writefile{lol}{\contentsline {lstlisting}{\numberline {7}Benutzung von Randbedingungen mit \textit {numpy}}{14}{lstlisting.7}} \@writefile{lol}{\contentsline {lstlisting}{\numberline {7}Benutzung von Randbedingungen mit \textit {numpy}}{14}{lstlisting.7}\protected@file@percent }
\newlabel{lst:code1}{{8}{14}{Segmentierung und Bildmodifizierung, Aufgabe 1}{lstlisting.8}{}} \newlabel{lst:code1}{{8}{14}{Segmentierung und Bildmodifizierung, Aufgabe 1}{lstlisting.8}{}}
\@writefile{lol}{\contentsline {lstlisting}{\numberline {8}Segmentierung und Bildmodifizierung, Aufgabe 1}{14}{lstlisting.8}} \@writefile{lol}{\contentsline {lstlisting}{\numberline {8}Segmentierung und Bildmodifizierung, Aufgabe 1}{14}{lstlisting.8}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.3.2}Bin\"armaske}{15}{subsubsection.2.3.2}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {2.3.2}Bin\"armaske}{15}{subsubsection.2.3.2}\protected@file@percent }
\newlabel{lst:contours}{{9}{15}{Konturfindung}{lstlisting.9}{}} \newlabel{lst:contours}{{9}{15}{Konturfindung}{lstlisting.9}{}}
\@writefile{lol}{\contentsline {lstlisting}{\numberline {9}Konturfindung}{15}{lstlisting.9}} \@writefile{lol}{\contentsline {lstlisting}{\numberline {9}Konturfindung}{15}{lstlisting.9}\protected@file@percent }
\newlabel{lst:contours}{{10}{15}{Segmentierung und Bildmodifizierung, Aufgabe 2}{lstlisting.10}{}} \newlabel{lst:contours}{{10}{15}{Segmentierung und Bildmodifizierung, Aufgabe 2}{lstlisting.10}{}}
\@writefile{lol}{\contentsline {lstlisting}{\numberline {10}Segmentierung und Bildmodifizierung, Aufgabe 2}{15}{lstlisting.10}} \@writefile{lol}{\contentsline {lstlisting}{\numberline {10}Segmentierung und Bildmodifizierung, Aufgabe 2}{15}{lstlisting.10}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.3.3}Bildmodifizierung}{15}{subsubsection.2.3.3}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {2.3.3}Bildmodifizierung}{15}{subsubsection.2.3.3}\protected@file@percent }
\newlabel{lst:contours}{{11}{16}{Segmentierung und Bildmodifizierung, Aufgabe 4}{lstlisting.11}{}} \newlabel{lst:contours}{{11}{16}{Segmentierung und Bildmodifizierung, Aufgabe 4}{lstlisting.11}{}}
\@writefile{lol}{\contentsline {lstlisting}{\numberline {11}Segmentierung und Bildmodifizierung, Aufgabe 4}{16}{lstlisting.11}} \@writefile{lol}{\contentsline {lstlisting}{\numberline {11}Segmentierung und Bildmodifizierung, Aufgabe 4}{16}{lstlisting.11}\protected@file@percent }
\@setckpt{sections/a3}{ \@setckpt{sections/a3}{
\setcounter{page}{17} \setcounter{page}{17}
\setcounter{equation}{5} \setcounter{equation}{5}
@@ -37,12 +37,12 @@
\setcounter{pagesLTS.pagenr}{17} \setcounter{pagesLTS.pagenr}{17}
\setcounter{pagesLTS.current.local.0}{1} \setcounter{pagesLTS.current.local.0}{1}
\setcounter{pagesLTS.pnc.0}{0} \setcounter{pagesLTS.pnc.0}{0}
\setcounter{section@level}{3}
\setcounter{Item}{0} \setcounter{Item}{0}
\setcounter{Hfootnote}{2} \setcounter{Hfootnote}{2}
\setcounter{bookmark@seq@number}{14} \setcounter{bookmark@seq@number}{14}
\setcounter{lstnumber}{2} \setcounter{lstnumber}{2}
\setcounter{pagesLTS.arabic.1.local.cnt}{17} \setcounter{pagesLTS.arabic.1.local.cnt}{17}
\setcounter{section@level}{3}
\setcounter{lstlisting}{11} \setcounter{lstlisting}{11}
\setcounter{pagesLTS.pnc.arabic}{1} \setcounter{pagesLTS.pnc.arabic}{1}
\setcounter{pagesLTS.double.arabic}{1} \setcounter{pagesLTS.double.arabic}{1}

View File

@@ -1,6 +1,6 @@
\relax \relax
\providecommand\hyper@newdestlabel[2]{} \providecommand\hyper@newdestlabel[2]{}
\@writefile{toc}{\contentsline {section}{\numberline {3}Zusammenfassung}{17}{section.3}} \@writefile{toc}{\contentsline {section}{\numberline {3}Zusammenfassung}{17}{section.3}\protected@file@percent }
\@setckpt{sections/conclusion}{ \@setckpt{sections/conclusion}{
\setcounter{page}{18} \setcounter{page}{18}
\setcounter{equation}{5} \setcounter{equation}{5}
@@ -24,12 +24,12 @@
\setcounter{pagesLTS.pagenr}{17} \setcounter{pagesLTS.pagenr}{17}
\setcounter{pagesLTS.current.local.0}{1} \setcounter{pagesLTS.current.local.0}{1}
\setcounter{pagesLTS.pnc.0}{0} \setcounter{pagesLTS.pnc.0}{0}
\setcounter{section@level}{1}
\setcounter{Item}{0} \setcounter{Item}{0}
\setcounter{Hfootnote}{2} \setcounter{Hfootnote}{2}
\setcounter{bookmark@seq@number}{15} \setcounter{bookmark@seq@number}{15}
\setcounter{lstnumber}{2} \setcounter{lstnumber}{2}
\setcounter{pagesLTS.arabic.1.local.cnt}{17} \setcounter{pagesLTS.arabic.1.local.cnt}{17}
\setcounter{section@level}{1}
\setcounter{lstlisting}{11} \setcounter{lstlisting}{11}
\setcounter{pagesLTS.pnc.arabic}{1} \setcounter{pagesLTS.pnc.arabic}{1}
\setcounter{pagesLTS.double.arabic}{1} \setcounter{pagesLTS.double.arabic}{1}

View File

@@ -1,23 +1,23 @@
\relax \relax
\providecommand\hyper@newdestlabel[2]{} \providecommand\hyper@newdestlabel[2]{}
\@writefile{toc}{\contentsline {section}{\numberline {1}Einleitung}{3}{section.1}} \@writefile{toc}{\contentsline {section}{\numberline {1}Einleitung}{3}{section.1}\protected@file@percent }
\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Harry Potter ohne magischen Tarnumhang}}{3}{figure.1}} \@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Harry Potter ohne magischen Tarnumhang}}{3}{figure.1}\protected@file@percent }
\newlabel{fig:harry1}{{1}{3}{Harry Potter ohne magischen Tarnumhang}{figure.1}{}} \newlabel{fig:harry1}{{1}{3}{Harry Potter ohne magischen Tarnumhang}{figure.1}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Harry Potter mit magischem Tarnumhang}}{3}{figure.2}} \@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Harry Potter mit magischem Tarnumhang}}{3}{figure.2}\protected@file@percent }
\newlabel{fig:harry2}{{2}{3}{Harry Potter mit magischem Tarnumhang}{figure.2}{}} \newlabel{fig:harry2}{{2}{3}{Harry Potter mit magischem Tarnumhang}{figure.2}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.1}Vorbereitung}{4}{subsection.1.1}} \@writefile{toc}{\contentsline {subsection}{\numberline {1.1}Vorbereitung}{4}{subsection.1.1}\protected@file@percent }
\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces Programmierumgebung in PyCharm}}{4}{figure.3}} \@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces Programmierumgebung in PyCharm}}{4}{figure.3}\protected@file@percent }
\newlabel{fig:pycharm}{{3}{4}{Programmierumgebung in PyCharm}{figure.3}{}} \newlabel{fig:pycharm}{{3}{4}{Programmierumgebung in PyCharm}{figure.3}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.2}Programmierumgebung}{5}{subsection.1.2}} \@writefile{toc}{\contentsline {subsection}{\numberline {1.2}Programmierumgebung}{5}{subsection.1.2}\protected@file@percent }
\newlabel{sec:Programmierumgebung}{{1.2}{5}{Programmierumgebung}{subsection.1.2}{}} \newlabel{sec:Programmierumgebung}{{1.2}{5}{Programmierumgebung}{subsection.1.2}{}}
\@writefile{lot}{\contentsline {table}{\numberline {1}{\ignorespaces Argumente f\"ur die Programmausf\"uhrung}}{5}{table.1}} \@writefile{lot}{\contentsline {table}{\numberline {1}{\ignorespaces Argumente f\"ur die Programmausf\"uhrung}}{5}{table.1}\protected@file@percent }
\newlabel{tab:parameter}{{1}{5}{Argumente f<>r die Programmausf<73>hrung}{table.1}{}} \newlabel{tab:parameter}{{1}{5}{Argumente f<>r die Programmausf<73>hrung}{table.1}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces Run Configuration in PyCharm}}{5}{figure.4}} \@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces Run Configuration in PyCharm}}{5}{figure.4}\protected@file@percent }
\newlabel{fig:run_config}{{4}{6}{Run Configuration in PyCharm}{figure.4}{}} \newlabel{fig:run_config}{{4}{6}{Run Configuration in PyCharm}{figure.4}{}}
\newlabel{lst:code2}{{1}{6}{Eigener Algorithmus in \textit {your\_algorithm.py}}{lstlisting.1}{}} \newlabel{lst:code2}{{1}{6}{Eigener Algorithmus in \textit {your\_algorithm.py}}{lstlisting.1}{}}
\@writefile{lol}{\contentsline {lstlisting}{\numberline {1}Eigener Algorithmus in \textit {your\_algorithm.py}}{6}{lstlisting.1}} \@writefile{lol}{\contentsline {lstlisting}{\numberline {1}Eigener Algorithmus in \textit {your\_algorithm.py}}{6}{lstlisting.1}\protected@file@percent }
\newlabel{lst:code1}{{2}{7}{Verlinkung der Algorithmen in \textit {\_\_init\_\_.py}}{lstlisting.2}{}} \newlabel{lst:code1}{{2}{7}{Verlinkung der Algorithmen in \textit {\_\_init\_\_.py}}{lstlisting.2}{}}
\@writefile{lol}{\contentsline {lstlisting}{\numberline {2}Verlinkung der Algorithmen in \textit {\_\_init\_\_.py}}{7}{lstlisting.2}} \@writefile{lol}{\contentsline {lstlisting}{\numberline {2}Verlinkung der Algorithmen in \textit {\_\_init\_\_.py}}{7}{lstlisting.2}\protected@file@percent }
\@setckpt{sections/overview}{ \@setckpt{sections/overview}{
\setcounter{page}{8} \setcounter{page}{8}
\setcounter{equation}{0} \setcounter{equation}{0}
@@ -41,12 +41,12 @@
\setcounter{pagesLTS.pagenr}{17} \setcounter{pagesLTS.pagenr}{17}
\setcounter{pagesLTS.current.local.0}{1} \setcounter{pagesLTS.current.local.0}{1}
\setcounter{pagesLTS.pnc.0}{0} \setcounter{pagesLTS.pnc.0}{0}
\setcounter{section@level}{2}
\setcounter{Item}{0} \setcounter{Item}{0}
\setcounter{Hfootnote}{2} \setcounter{Hfootnote}{2}
\setcounter{bookmark@seq@number}{3} \setcounter{bookmark@seq@number}{3}
\setcounter{lstnumber}{10} \setcounter{lstnumber}{10}
\setcounter{pagesLTS.arabic.1.local.cnt}{17} \setcounter{pagesLTS.arabic.1.local.cnt}{17}
\setcounter{section@level}{2}
\setcounter{lstlisting}{2} \setcounter{lstlisting}{2}
\setcounter{pagesLTS.pnc.arabic}{1} \setcounter{pagesLTS.pnc.arabic}{1}
\setcounter{pagesLTS.double.arabic}{1} \setcounter{pagesLTS.double.arabic}{1}

View File

@@ -19,6 +19,9 @@ class InvisCloak (Algorithm):
# Includes noice reduction and histogram spread # Includes noice reduction and histogram spread
self.middle_value_picture = None self.middle_value_picture = None
# Buffer for background image
self.background = None
# Clean up results folder # Clean up results folder
folder_path = os.path.join("results") folder_path = os.path.join("results")
@@ -78,6 +81,7 @@ class InvisCloak (Algorithm):
elif event == cv2.EVENT_MBUTTONUP: elif event == cv2.EVENT_MBUTTONUP:
# Save current image as background # Save current image as background
cv2.imwrite(f"results/background.png", self.picture_buffer[self.n - 1]) cv2.imwrite(f"results/background.png", self.picture_buffer[self.n - 1])
self.background = cv2.imread("results/background.png")
def _plotNoise(self, img, name:str): def _plotNoise(self, img, name:str):
@@ -172,29 +176,23 @@ class InvisCloak (Algorithm):
Hier steht Ihr Code zu Aufgabe 2.3.1 (StatischesSchwellwertverfahren) Hier steht Ihr Code zu Aufgabe 2.3.1 (StatischesSchwellwertverfahren)
- Binärmaske erstellen - Binärmaske erstellen
""" """
# 0 = blue, 1 = green, 2 = red # Convert BGR -> HSV
selected_color_channel = 2 hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
# Color threshold values for color deletion # Area 1: H = 0-10 (strong Rot)
lower_bound, upper_bound = 100, 255 lower_red1 = np.array([0, 100, 50])
upper_red1 = np.array([0, 255, 255])
# Creating binary mask # Area 2: H = 169-179 (red-violet)
binary_mask = (lower_bound < img[:, :, selected_color_channel]) * (img[:, :, selected_color_channel] < upper_bound) lower_red2 = np.array([171, 100, 50])
upper_red2 = np.array([179, 255, 255])
# Store binary mask to results folder # Create binary mask for both red areas
if save_binary_mask: mask1 = cv2.inRange(hsv, lower_red1, upper_red1)
cv2.imwrite(f"results/{datetime.datetime.now().strftime('%Y-%m-%d_%H:%M:%S')}_binary_mask.png", mask2 = cv2.inRange(hsv, lower_red2, upper_red2)
binary_mask * 256)
try:
# Get background image
background = cv2.imread("results/background.png")
# Apply mask to image
img[binary_mask] = background[binary_mask]
except:
print("No background image")
# Combine both masks
mask = cv2.bitwise_or(mask1, mask2)
""" """
Hier steht Ihr Code zu Aufgabe 2.3.2 (Binärmaske) Hier steht Ihr Code zu Aufgabe 2.3.2 (Binärmaske)
@@ -202,12 +200,42 @@ class InvisCloak (Algorithm):
- Wahl größte zusammenhängende Region - Wahl größte zusammenhängende Region
""" """
# Optimizing mask with opening and closing
kernel = np.ones((5, 5), np.uint8)
mask = cv2.morphologyEx(mask, cv2.MORPH_OPEN, kernel)
mask = cv2.morphologyEx(mask, cv2.MORPH_CLOSE, kernel)
# Select biggest connected area
cnts, _ = cv2.findContours(mask, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)
if cnts:
c = max(cnts, key=cv2.contourArea)
new_mask = np.zeros_like(mask)
cv2.drawContours(new_mask, [c], -1, color = 255, thickness = -1)
mask = new_mask
else:
mask = np.zeros_like(mask)
""" """
Hier steht Ihr Code zu Aufgabe 2.3.1 (Bildmodifizerung) Hier steht Ihr Code zu Aufgabe 2.3.3 (Bildmodifizerung)
- Hintergrund mit Mausklick definieren - Hintergrund mit Mausklick definieren
- Ersetzen des Hintergrundes - Ersetzen des Hintergrundes
""" """
# Return image if no background is set
if self.background is None:
return img return img
# 3-channel mask for binary operations
mask_3ch = cv2.cvtColor(mask, cv2.COLOR_GRAY2BGR)
# Background are: Get from save background image
background_part = cv2.bitwise_and(self.background, mask_3ch)
# Foreground area: Extract from current image
foreground_part = cv2.bitwise_and(img, cv2.bitwise_not(mask_3ch))
# Merge both areas
output = cv2.add(background_part, foreground_part)
return output