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ändig in Kleingruppen. Alle Gruppenmitglieder sollen Arbeitsaufwand in gleicher Größenordnung einbringen. Betrugsversuche werden geahndet. Die Bearbeitung der Aufgaben erfolgt selbstständig in Kleingruppen. Alle Gruppenmitglieder sollen Arbeitsaufwand in gleicher Größ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ührung}{table.1}{}} \newlabel{tab:parameter}{{1}{5}{Argumente für die Programmausfü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