Initial commit with project files
This commit is contained in:
39
Abgabe/sections/a.aux
Normal file
39
Abgabe/sections/a.aux
Normal file
@@ -0,0 +1,39 @@
|
||||
\relax
|
||||
\providecommand\hyper@newdestlabel[2]{}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {2}Aufgabe}{8}{section.2}}
|
||||
\@writefile{lof}{\contentsline {figure}{\numberline {5}{\ignorespaces Bildverarbeitungs-Pipeline}}{8}{figure.5}}
|
||||
\newlabel{fig:skizzepipeline}{{5}{8}{Bildverarbeitungs-Pipeline}{figure.5}{}}
|
||||
\@setckpt{sections/a}{
|
||||
\setcounter{page}{10}
|
||||
\setcounter{equation}{0}
|
||||
\setcounter{enumi}{0}
|
||||
\setcounter{enumii}{0}
|
||||
\setcounter{enumiii}{0}
|
||||
\setcounter{enumiv}{0}
|
||||
\setcounter{footnote}{2}
|
||||
\setcounter{mpfootnote}{0}
|
||||
\setcounter{sapage}{0}
|
||||
\setcounter{part}{0}
|
||||
\setcounter{section}{2}
|
||||
\setcounter{subsection}{0}
|
||||
\setcounter{subsubsection}{0}
|
||||
\setcounter{paragraph}{0}
|
||||
\setcounter{subparagraph}{0}
|
||||
\setcounter{figure}{5}
|
||||
\setcounter{table}{1}
|
||||
\setcounter{currfiledepth}{0}
|
||||
\setcounter{CurrentPage}{10}
|
||||
\setcounter{pagesLTS.pagenr}{17}
|
||||
\setcounter{pagesLTS.current.local.0}{1}
|
||||
\setcounter{pagesLTS.pnc.0}{0}
|
||||
\setcounter{Item}{0}
|
||||
\setcounter{Hfootnote}{2}
|
||||
\setcounter{bookmark@seq@number}{4}
|
||||
\setcounter{lstnumber}{10}
|
||||
\setcounter{pagesLTS.arabic.1.local.cnt}{17}
|
||||
\setcounter{section@level}{1}
|
||||
\setcounter{lstlisting}{2}
|
||||
\setcounter{pagesLTS.pnc.arabic}{1}
|
||||
\setcounter{pagesLTS.double.arabic}{1}
|
||||
\setcounter{pagesLTS.current.local.arabic}{10}
|
||||
}
|
||||
648
Abgabe/sections/a.log
Normal file
648
Abgabe/sections/a.log
Normal file
@@ -0,0 +1,648 @@
|
||||
This is pdfTeX, Version 3.14159265-2.6-1.40.18 (TeX Live 2017/TeX Live for SUSE Linux) (preloaded format=pdflatex 2020.8.24) 6 APR 2021 11:25
|
||||
entering extended mode
|
||||
restricted \write18 enabled.
|
||||
%&-line parsing enabled.
|
||||
**a.tex
|
||||
(./a.tex
|
||||
LaTeX2e <2017-04-15>
|
||||
Babel <3.10> and hyphenation patterns for 84 language(s) loaded.
|
||||
! Undefined control sequence.
|
||||
l.2 \section
|
||||
{Aufgabe}
|
||||
The control sequence at the end of the top line
|
||||
of your error message was never \def'ed. If you have
|
||||
misspelled it (e.g., `\hobx'), type `I' and the correct
|
||||
spelling (e.g., `I\hbox'). Otherwise just continue,
|
||||
and I'll forget about whatever was undefined.
|
||||
|
||||
|
||||
! LaTeX Error: Missing \begin{document}.
|
||||
|
||||
See the LaTeX manual or LaTeX Companion for explanation.
|
||||
Type H <return> for immediate help.
|
||||
...
|
||||
|
||||
l.2 \section{A
|
||||
ufgabe}
|
||||
You're in trouble here. Try typing <return> to proceed.
|
||||
If that doesn't work, type X <return> to quit.
|
||||
|
||||
Missing character: There is no A in font nullfont!
|
||||
Missing character: There is no u in font nullfont!
|
||||
Missing character: There is no f in font nullfont!
|
||||
Missing character: There is no g in font nullfont!
|
||||
Missing character: There is no a in font nullfont!
|
||||
Missing character: There is no b in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no D in font nullfont!
|
||||
Missing character: There is no a in font nullfont!
|
||||
Missing character: There is no s in font nullfont!
|
||||
Missing character: There is no Z in font nullfont!
|
||||
Missing character: There is no i in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no l in font nullfont!
|
||||
Missing character: There is no i in font nullfont!
|
||||
Missing character: There is no s in font nullfont!
|
||||
Missing character: There is no t in font nullfont!
|
||||
Missing character: There is no d in font nullfont!
|
||||
Missing character: There is no i in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no D in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no t in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no k in font nullfont!
|
||||
Missing character: There is no t in font nullfont!
|
||||
Missing character: There is no i in font nullfont!
|
||||
Missing character: There is no o in font nullfont!
|
||||
Missing character: There is no n in font nullfont!
|
||||
Missing character: There is no d in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no s in font nullfont!
|
||||
! Undefined control sequence.
|
||||
l.3 Das Ziel ist die Detektion des \glqq
|
||||
magischen Umhangs\grqq\ sowie das k...
|
||||
The control sequence at the end of the top line
|
||||
of your error message was never \def'ed. If you have
|
||||
misspelled it (e.g., `\hobx'), type `I' and the correct
|
||||
spelling (e.g., `I\hbox'). Otherwise just continue,
|
||||
and I'll forget about whatever was undefined.
|
||||
|
||||
Missing character: There is no m in font nullfont!
|
||||
Missing character: There is no a in font nullfont!
|
||||
Missing character: There is no g in font nullfont!
|
||||
Missing character: There is no i in font nullfont!
|
||||
Missing character: There is no s in font nullfont!
|
||||
Missing character: There is no c in font nullfont!
|
||||
Missing character: There is no h in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no n in font nullfont!
|
||||
Missing character: There is no U in font nullfont!
|
||||
Missing character: There is no m in font nullfont!
|
||||
Missing character: There is no h in font nullfont!
|
||||
Missing character: There is no a in font nullfont!
|
||||
Missing character: There is no n in font nullfont!
|
||||
Missing character: There is no g in font nullfont!
|
||||
Missing character: There is no s in font nullfont!
|
||||
! Undefined control sequence.
|
||||
l.3 ... Detektion des \glqq magischen Umhangs\grqq
|
||||
\ sowie das künstliche En...
|
||||
The control sequence at the end of the top line
|
||||
of your error message was never \def'ed. If you have
|
||||
misspelled it (e.g., `\hobx'), type `I' and the correct
|
||||
spelling (e.g., `I\hbox'). Otherwise just continue,
|
||||
and I'll forget about whatever was undefined.
|
||||
|
||||
Missing character: There is no s in font nullfont!
|
||||
Missing character: There is no o in font nullfont!
|
||||
Missing character: There is no w in font nullfont!
|
||||
Missing character: There is no i in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no d in font nullfont!
|
||||
Missing character: There is no a in font nullfont!
|
||||
Missing character: There is no s in font nullfont!
|
||||
Missing character: There is no k in font nullfont!
|
||||
Missing character: There is no à in font nullfont!
|
||||
Missing character: There is no ¼ in font nullfont!
|
||||
Missing character: There is no n in font nullfont!
|
||||
Missing character: There is no s in font nullfont!
|
||||
Missing character: There is no t in font nullfont!
|
||||
Missing character: There is no l in font nullfont!
|
||||
Missing character: There is no i in font nullfont!
|
||||
Missing character: There is no c in font nullfont!
|
||||
Missing character: There is no h in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no E in font nullfont!
|
||||
Missing character: There is no n in font nullfont!
|
||||
Missing character: There is no t in font nullfont!
|
||||
Missing character: There is no f in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no r in font nullfont!
|
||||
Missing character: There is no n in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no n in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no i in font nullfont!
|
||||
Missing character: There is no n in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no s in font nullfont!
|
||||
Missing character: There is no O in font nullfont!
|
||||
Missing character: There is no b in font nullfont!
|
||||
Missing character: There is no j in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no k in font nullfont!
|
||||
Missing character: There is no t in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no s in font nullfont!
|
||||
Missing character: There is no i in font nullfont!
|
||||
Missing character: There is no m in font nullfont!
|
||||
Missing character: There is no V in font nullfont!
|
||||
Missing character: There is no o in font nullfont!
|
||||
Missing character: There is no r in font nullfont!
|
||||
Missing character: There is no d in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no r in font nullfont!
|
||||
Missing character: There is no g in font nullfont!
|
||||
Missing character: There is no r in font nullfont!
|
||||
Missing character: There is no u in font nullfont!
|
||||
Missing character: There is no n in font nullfont!
|
||||
Missing character: There is no d in font nullfont!
|
||||
Missing character: There is no . in font nullfont!
|
||||
Missing character: There is no D in font nullfont!
|
||||
Missing character: There is no a in font nullfont!
|
||||
Missing character: There is no f in font nullfont!
|
||||
Missing character: There is no à in font nullfont!
|
||||
Missing character: There is no ¼ in font nullfont!
|
||||
Missing character: There is no r in font nullfont!
|
||||
Missing character: There is no w in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no r in font nullfont!
|
||||
Missing character: There is no d in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no n in font nullfont!
|
||||
Missing character: There is no i in font nullfont!
|
||||
Missing character: There is no n in font nullfont!
|
||||
Missing character: There is no d in font nullfont!
|
||||
Missing character: There is no i in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no s in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no m in font nullfont!
|
||||
Missing character: There is no L in font nullfont!
|
||||
Missing character: There is no a in font nullfont!
|
||||
Missing character: There is no b in font nullfont!
|
||||
Missing character: There is no o in font nullfont!
|
||||
Missing character: There is no r in font nullfont!
|
||||
Missing character: There is no d in font nullfont!
|
||||
Missing character: There is no r in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no i in font nullfont!
|
||||
Missing character: There is no A in font nullfont!
|
||||
Missing character: There is no r in font nullfont!
|
||||
Missing character: There is no b in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no i in font nullfont!
|
||||
Missing character: There is no t in font nullfont!
|
||||
Missing character: There is no s in font nullfont!
|
||||
Missing character: There is no p in font nullfont!
|
||||
Missing character: There is no a in font nullfont!
|
||||
Missing character: There is no k in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no t in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no b in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no a in font nullfont!
|
||||
Missing character: There is no r in font nullfont!
|
||||
Missing character: There is no b in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no i in font nullfont!
|
||||
Missing character: There is no t in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no t in font nullfont!
|
||||
Missing character: There is no : in font nullfont!
|
||||
Missing character: There is no D in font nullfont!
|
||||
Missing character: There is no i in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no V in font nullfont!
|
||||
Missing character: There is no o in font nullfont!
|
||||
Missing character: There is no r in font nullfont!
|
||||
Missing character: There is no v in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no r in font nullfont!
|
||||
Missing character: There is no a in font nullfont!
|
||||
Missing character: There is no r in font nullfont!
|
||||
Missing character: There is no b in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no i in font nullfont!
|
||||
Missing character: There is no t in font nullfont!
|
||||
Missing character: There is no u in font nullfont!
|
||||
Missing character: There is no n in font nullfont!
|
||||
Missing character: There is no g in font nullfont!
|
||||
Missing character: There is no , in font nullfont!
|
||||
Missing character: There is no d in font nullfont!
|
||||
Missing character: There is no i in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no F in font nullfont!
|
||||
Missing character: There is no a in font nullfont!
|
||||
Missing character: There is no r in font nullfont!
|
||||
Missing character: There is no b in font nullfont!
|
||||
Missing character: There is no a in font nullfont!
|
||||
Missing character: There is no n in font nullfont!
|
||||
Missing character: There is no a in font nullfont!
|
||||
Missing character: There is no l in font nullfont!
|
||||
Missing character: There is no y in font nullfont!
|
||||
Missing character: There is no s in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no d in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no r in font nullfont!
|
||||
Missing character: There is no S in font nullfont!
|
||||
Missing character: There is no z in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no n in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no u in font nullfont!
|
||||
Missing character: There is no n in font nullfont!
|
||||
Missing character: There is no d in font nullfont!
|
||||
Missing character: There is no d in font nullfont!
|
||||
Missing character: There is no i in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no S in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no g in font nullfont!
|
||||
Missing character: There is no m in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no n in font nullfont!
|
||||
Missing character: There is no t in font nullfont!
|
||||
Missing character: There is no i in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no r in font nullfont!
|
||||
Missing character: There is no u in font nullfont!
|
||||
Missing character: There is no n in font nullfont!
|
||||
Missing character: There is no g in font nullfont!
|
||||
Missing character: There is no d in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no s in font nullfont!
|
||||
Missing character: There is no U in font nullfont!
|
||||
Missing character: There is no m in font nullfont!
|
||||
Missing character: There is no h in font nullfont!
|
||||
Missing character: There is no a in font nullfont!
|
||||
Missing character: There is no n in font nullfont!
|
||||
Missing character: There is no g in font nullfont!
|
||||
Missing character: There is no s in font nullfont!
|
||||
Missing character: There is no . in font nullfont!
|
||||
Missing character: There is no E in font nullfont!
|
||||
Missing character: There is no i in font nullfont!
|
||||
Missing character: There is no n in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no S in font nullfont!
|
||||
Missing character: There is no k in font nullfont!
|
||||
Missing character: There is no i in font nullfont!
|
||||
Missing character: There is no z in font nullfont!
|
||||
Missing character: There is no z in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no d in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no r in font nullfont!
|
||||
Missing character: There is no B in font nullfont!
|
||||
Missing character: There is no i in font nullfont!
|
||||
Missing character: There is no l in font nullfont!
|
||||
Missing character: There is no d in font nullfont!
|
||||
Missing character: There is no v in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no r in font nullfont!
|
||||
Missing character: There is no a in font nullfont!
|
||||
Missing character: There is no r in font nullfont!
|
||||
Missing character: There is no b in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no i in font nullfont!
|
||||
Missing character: There is no t in font nullfont!
|
||||
Missing character: There is no u in font nullfont!
|
||||
Missing character: There is no n in font nullfont!
|
||||
Missing character: There is no g in font nullfont!
|
||||
Missing character: There is no s in font nullfont!
|
||||
Missing character: There is no - in font nullfont!
|
||||
Missing character: There is no P in font nullfont!
|
||||
Missing character: There is no i in font nullfont!
|
||||
Missing character: There is no p in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no l in font nullfont!
|
||||
Missing character: There is no i in font nullfont!
|
||||
Missing character: There is no n in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no i in font nullfont!
|
||||
Missing character: There is no s in font nullfont!
|
||||
Missing character: There is no t in font nullfont!
|
||||
Missing character: There is no i in font nullfont!
|
||||
Missing character: There is no n in font nullfont!
|
||||
Missing character: There is no A in font nullfont!
|
||||
Missing character: There is no b in font nullfont!
|
||||
Missing character: There is no b in font nullfont!
|
||||
Missing character: There is no i in font nullfont!
|
||||
Missing character: There is no l in font nullfont!
|
||||
Missing character: There is no d in font nullfont!
|
||||
Missing character: There is no u in font nullfont!
|
||||
Missing character: There is no n in font nullfont!
|
||||
Missing character: There is no g in font nullfont!
|
||||
! Undefined control sequence.
|
||||
<write> ... `fig:skizzepipeline' on page \thepage
|
||||
\space undefined\on@line .
|
||||
l.3 ...e ist in Abbildung \ref{fig:skizzepipeline}
|
||||
dargestellt.
|
||||
The control sequence at the end of the top line
|
||||
of your error message was never \def'ed. If you have
|
||||
misspelled it (e.g., `\hobx'), type `I' and the correct
|
||||
spelling (e.g., `I\hbox'). Otherwise just continue,
|
||||
and I'll forget about whatever was undefined.
|
||||
|
||||
|
||||
LaTeX Warning: Reference `fig:skizzepipeline' on page undefined on input line
|
||||
3.
|
||||
|
||||
Missing character: There is no d in font nullfont!
|
||||
Missing character: There is no a in font nullfont!
|
||||
Missing character: There is no r in font nullfont!
|
||||
Missing character: There is no g in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no s in font nullfont!
|
||||
Missing character: There is no t in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no l in font nullfont!
|
||||
Missing character: There is no l in font nullfont!
|
||||
Missing character: There is no t in font nullfont!
|
||||
Missing character: There is no . in font nullfont!
|
||||
|
||||
Overfull \hbox (20.0pt too wide) in paragraph at lines 2--4
|
||||
[]
|
||||
[]
|
||||
|
||||
|
||||
Overfull \hbox (10.86105pt too wide) in paragraph at lines 2--4
|
||||
[]
|
||||
[]
|
||||
|
||||
|
||||
! LaTeX Error: Missing \begin{document}.
|
||||
|
||||
See the LaTeX manual or LaTeX Companion for explanation.
|
||||
Type H <return> for immediate help.
|
||||
...
|
||||
|
||||
l.8 I
|
||||
m folgenden finden Sie detaillierte Beschreibungen der Arbeitspakete. B...
|
||||
|
||||
You're in trouble here. Try typing <return> to proceed.
|
||||
If that doesn't work, type X <return> to quit.
|
||||
|
||||
Missing character: There is no I in font nullfont!
|
||||
Missing character: There is no m in font nullfont!
|
||||
Missing character: There is no f in font nullfont!
|
||||
Missing character: There is no o in font nullfont!
|
||||
Missing character: There is no l in font nullfont!
|
||||
Missing character: There is no g in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no n in font nullfont!
|
||||
Missing character: There is no d in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no n in font nullfont!
|
||||
Missing character: There is no f in font nullfont!
|
||||
Missing character: There is no i in font nullfont!
|
||||
Missing character: There is no n in font nullfont!
|
||||
Missing character: There is no d in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no n in font nullfont!
|
||||
Missing character: There is no S in font nullfont!
|
||||
Missing character: There is no i in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no d in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no t in font nullfont!
|
||||
Missing character: There is no a in font nullfont!
|
||||
Missing character: There is no i in font nullfont!
|
||||
Missing character: There is no l in font nullfont!
|
||||
Missing character: There is no l in font nullfont!
|
||||
Missing character: There is no i in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no r in font nullfont!
|
||||
Missing character: There is no t in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no B in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no s in font nullfont!
|
||||
Missing character: There is no c in font nullfont!
|
||||
Missing character: There is no h in font nullfont!
|
||||
Missing character: There is no r in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no i in font nullfont!
|
||||
Missing character: There is no b in font nullfont!
|
||||
Missing character: There is no u in font nullfont!
|
||||
Missing character: There is no n in font nullfont!
|
||||
Missing character: There is no g in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no n in font nullfont!
|
||||
Missing character: There is no d in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no r in font nullfont!
|
||||
Missing character: There is no A in font nullfont!
|
||||
Missing character: There is no r in font nullfont!
|
||||
Missing character: There is no b in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no i in font nullfont!
|
||||
Missing character: There is no t in font nullfont!
|
||||
Missing character: There is no s in font nullfont!
|
||||
Missing character: There is no p in font nullfont!
|
||||
Missing character: There is no a in font nullfont!
|
||||
Missing character: There is no k in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no t in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no . in font nullfont!
|
||||
Missing character: There is no B in font nullfont!
|
||||
Missing character: There is no i in font nullfont!
|
||||
Missing character: There is no t in font nullfont!
|
||||
Missing character: There is no t in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no b in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no a in font nullfont!
|
||||
Missing character: There is no n in font nullfont!
|
||||
Missing character: There is no t in font nullfont!
|
||||
Missing character: There is no w in font nullfont!
|
||||
Missing character: There is no o in font nullfont!
|
||||
Missing character: There is no r in font nullfont!
|
||||
Missing character: There is no t in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no n in font nullfont!
|
||||
Missing character: There is no S in font nullfont!
|
||||
Missing character: There is no i in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no d in font nullfont!
|
||||
Missing character: There is no i in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no v in font nullfont!
|
||||
Missing character: There is no o in font nullfont!
|
||||
Missing character: There is no r in font nullfont!
|
||||
Missing character: There is no h in font nullfont!
|
||||
Missing character: There is no a in font nullfont!
|
||||
Missing character: There is no n in font nullfont!
|
||||
Missing character: There is no d in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no n in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no n in font nullfont!
|
||||
Missing character: There is no F in font nullfont!
|
||||
Missing character: There is no r in font nullfont!
|
||||
Missing character: There is no a in font nullfont!
|
||||
Missing character: There is no g in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no n in font nullfont!
|
||||
Missing character: There is no u in font nullfont!
|
||||
Missing character: There is no n in font nullfont!
|
||||
Missing character: There is no d in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no r in font nullfont!
|
||||
Missing character: There is no s in font nullfont!
|
||||
Missing character: There is no t in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no l in font nullfont!
|
||||
Missing character: There is no l in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no n in font nullfont!
|
||||
Missing character: There is no S in font nullfont!
|
||||
Missing character: There is no i in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no g in font nullfont!
|
||||
Missing character: There is no g in font nullfont!
|
||||
Missing character: There is no f in font nullfont!
|
||||
Missing character: There is no . in font nullfont!
|
||||
Missing character: There is no g in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no f in font nullfont!
|
||||
Missing character: There is no o in font nullfont!
|
||||
Missing character: There is no r in font nullfont!
|
||||
Missing character: There is no d in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no r in font nullfont!
|
||||
Missing character: There is no t in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no n in font nullfont!
|
||||
Missing character: There is no C in font nullfont!
|
||||
Missing character: There is no o in font nullfont!
|
||||
Missing character: There is no d in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no o in font nullfont!
|
||||
Missing character: There is no d in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no r in font nullfont!
|
||||
Missing character: There is no A in font nullfont!
|
||||
Missing character: There is no b in font nullfont!
|
||||
Missing character: There is no b in font nullfont!
|
||||
Missing character: There is no i in font nullfont!
|
||||
Missing character: There is no l in font nullfont!
|
||||
Missing character: There is no d in font nullfont!
|
||||
Missing character: There is no u in font nullfont!
|
||||
Missing character: There is no n in font nullfont!
|
||||
Missing character: There is no g in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no n in font nullfont!
|
||||
Missing character: There is no . in font nullfont!
|
||||
Missing character: There is no D in font nullfont!
|
||||
Missing character: There is no i in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no B in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no a in font nullfont!
|
||||
Missing character: There is no r in font nullfont!
|
||||
Missing character: There is no b in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no i in font nullfont!
|
||||
Missing character: There is no t in font nullfont!
|
||||
Missing character: There is no u in font nullfont!
|
||||
Missing character: There is no n in font nullfont!
|
||||
Missing character: There is no g in font nullfont!
|
||||
Missing character: There is no d in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no r in font nullfont!
|
||||
Missing character: There is no F in font nullfont!
|
||||
Missing character: There is no r in font nullfont!
|
||||
Missing character: There is no a in font nullfont!
|
||||
Missing character: There is no g in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no n in font nullfont!
|
||||
Missing character: There is no k in font nullfont!
|
||||
Missing character: There is no a in font nullfont!
|
||||
Missing character: There is no n in font nullfont!
|
||||
Missing character: There is no n in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no n in font nullfont!
|
||||
Missing character: There is no t in font nullfont!
|
||||
Missing character: There is no w in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no d in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no r in font nullfont!
|
||||
Missing character: There is no m in font nullfont!
|
||||
Missing character: There is no i in font nullfont!
|
||||
Missing character: There is no t in font nullfont!
|
||||
Missing character: There is no h in font nullfont!
|
||||
Missing character: There is no i in font nullfont!
|
||||
Missing character: There is no l in font nullfont!
|
||||
Missing character: There is no f in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no d in font nullfont!
|
||||
Missing character: There is no i in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no s in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no s in font nullfont!
|
||||
Missing character: There is no L in font nullfont!
|
||||
Missing character: There is no a in font nullfont!
|
||||
Missing character: There is no t in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no x in font nullfont!
|
||||
Missing character: There is no D in font nullfont!
|
||||
Missing character: There is no o in font nullfont!
|
||||
Missing character: There is no k in font nullfont!
|
||||
Missing character: There is no u in font nullfont!
|
||||
Missing character: There is no m in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no n in font nullfont!
|
||||
Missing character: There is no t in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no s in font nullfont!
|
||||
Missing character: There is no , in font nullfont!
|
||||
Missing character: There is no o in font nullfont!
|
||||
Missing character: There is no d in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no r in font nullfont!
|
||||
Missing character: There is no i in font nullfont!
|
||||
Missing character: There is no n in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no i in font nullfont!
|
||||
Missing character: There is no n in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no m in font nullfont!
|
||||
Missing character: There is no s in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no p in font nullfont!
|
||||
Missing character: There is no a in font nullfont!
|
||||
Missing character: There is no r in font nullfont!
|
||||
Missing character: There is no a in font nullfont!
|
||||
Missing character: There is no t in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no m in font nullfont!
|
||||
Missing character: There is no P in font nullfont!
|
||||
Missing character: There is no D in font nullfont!
|
||||
Missing character: There is no F in font nullfont!
|
||||
Missing character: There is no g in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no s in font nullfont!
|
||||
Missing character: There is no c in font nullfont!
|
||||
Missing character: There is no h in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no h in font nullfont!
|
||||
Missing character: There is no e in font nullfont!
|
||||
Missing character: There is no n in font nullfont!
|
||||
Missing character: There is no . in font nullfont!
|
||||
|
||||
Overfull \hbox (20.0pt too wide) in paragraph at lines 8--9
|
||||
[]
|
||||
[]
|
||||
|
||||
)
|
||||
! Emergency stop.
|
||||
<*> a.tex
|
||||
|
||||
*** (job aborted, no legal \end found)
|
||||
|
||||
|
||||
Here is how much of TeX's memory you used:
|
||||
9 strings out of 492995
|
||||
172 string characters out of 6141053
|
||||
54074 words of memory out of 5000000
|
||||
3661 multiletter control sequences out of 15000+600000
|
||||
3948 words of font info for 15 fonts, out of 8000000 for 9000
|
||||
1141 hyphenation exceptions out of 8191
|
||||
19i,2n,19p,393b,89s stack positions out of 5000i,500n,10000p,200000b,80000s
|
||||
! ==> Fatal error occurred, no output PDF file produced!
|
||||
65
Abgabe/sections/a.tex
Normal file
65
Abgabe/sections/a.tex
Normal file
@@ -0,0 +1,65 @@
|
||||
\newpage
|
||||
\section{Aufgabe}
|
||||
Das Ziel ist die Detektion des \glqq magischen Umhangs\grqq\ sowie das k\"unstliche Entfernen eines Objektes im Vordergrund. Daf\"ur werden in diesem Labor drei Arbeitspakete bearbeitet: Die Vorverarbeitung, die Farbanalyse der Szene und die Segmentierung des Umhangs. Eine Skizze der Bildverarbeitungs-Pipeline ist in Abbildung \ref{fig:skizzepipeline} dargestellt.
|
||||
|
||||
\begin{figure}
|
||||
\centering
|
||||
|
||||
\tikzstyle{decision} = [diamond, draw, fill=blue!20, text width=4.5em, text badly centered, node distance=3cm, inner sep=0pt]
|
||||
\tikzstyle{block} = [rectangle, draw, fill=blue!20, text width=8em, text centered, rounded corners, minimum height=4em]
|
||||
\tikzstyle{line} = [draw, -latex']
|
||||
\tikzstyle{cloud} = [draw, ellipse,fill=red!20, node distance=4cm, minimum height=2em]
|
||||
\begin{tikzpicture}[node distance = 2cm, auto]
|
||||
% Place nodes
|
||||
|
||||
|
||||
\node [block, fill=green!20] (Rauschreduktion) {Rauschreduktion};
|
||||
\node [block, fill=green!20, below of=Rauschreduktion] (Histogramm) {Histogramm Spreizung};
|
||||
\node [block, fill=yellow!20, below of=Histogramm] (Farbanalyse) {Farbanalyse};
|
||||
\node [block, fill=blue!20, below of=Farbanalyse] (Schwellwertverfahren) {Schwellwert-verfahren};
|
||||
\node [block, fill=blue!20, below of=Schwellwertverfahren] (Maske) {Bin\"armasken-Optimierung};
|
||||
\node [block, fill=blue!20, below of=Maske] (Bildmodifizierung) {Bildmodifizierung};
|
||||
\node [cloud, left of=Rauschreduktion] (Webcam) {Webcam};
|
||||
\node [cloud,right of=Bildmodifizierung] (Output1) {Screen};
|
||||
\node [cloud,below of=Output1, node distance=1.5cm] (Output2) {Virtuelle Kamera};
|
||||
\node [cloud,left of=Bildmodifizierung] (Input2) {Maus-Events};
|
||||
%\node [cloud, left of=init] (expert) {expert};
|
||||
%\node [cloud, right of=init] (system) {system};
|
||||
%\node [block, below of=init] (identify) {identify candidate models};
|
||||
%\node [block, below of=identify] (evaluate) {evaluate candidate models};
|
||||
%\node [block, left of=evaluate, node distance=3cm] (update) {update model};
|
||||
%\node [decision, below of=evaluate] (decide) {is best candidate better?};
|
||||
%\node [block, below of=decide, node distance=3cm] (stop) {stop};
|
||||
|
||||
|
||||
% Draw edges
|
||||
\path [line] (Webcam) -- (Rauschreduktion);
|
||||
\path [line] (Rauschreduktion) -- (Histogramm);
|
||||
\path [line] (Histogramm) -- (Farbanalyse);
|
||||
\path [line] (Farbanalyse) -- (Schwellwertverfahren);
|
||||
\path [line] (Schwellwertverfahren) -- (Maske);
|
||||
\path [line] (Maske) -- (Bildmodifizierung);
|
||||
\path [line] (Bildmodifizierung) -- (Output1);
|
||||
\path [line,dashed] (Bildmodifizierung) -- (Output2);
|
||||
\path [line] (Input2) -- (Bildmodifizierung);
|
||||
%\path [line] (identify) -- (evaluate);
|
||||
%\path [line] (evaluate) -- (decide);
|
||||
%\path [line] (decide) -| node [near start] {yes} (update);
|
||||
%\path [line] (update) |- (identify);
|
||||
%\path [line] (decide) -- node {no}(stop);
|
||||
%\path [line,dashed] (expert) -- (init);
|
||||
%path [line,dashed] (system) -- (init);
|
||||
%\path [line,dashed] (system) |- (evaluate);
|
||||
|
||||
\end{tikzpicture}
|
||||
\caption{Bildverarbeitungs-Pipeline}
|
||||
\label{fig:skizzepipeline}
|
||||
\end{figure}
|
||||
|
||||
Die Szene f\"ur diesen Versuch wird durch Sie definiert: W"ahlen Sie sich eine eint"onige, m"oglichst monotone Umgebung als Szene f\"ur diesen Versuch. Der \glqq magische Umhang\grqq\ wird dann durch einen einfarbigen Gegenstand (es muss kein Umhang sein!) realisiert. Achten Sie darauf, dass sich der Umhang farblich von der Szene unterscheidet. Je st"arker der Kontrast zwischen \glqq Umhang\grqq\ und Szene ist, desto besser l"asst sich dieser Versuch durchf"uhren.
|
||||
|
||||
|
||||
Im folgenden finden Sie detaillierte Beschreibungen der Arbeitspakete. Bitte beantworten Sie die vorhandenen Fragen und erstellen Sie ggf.\ geforderten Code oder Abbildungen. Die Bearbeitung der Fragen kann entweder innerhalb dieses Latex Dokuments, oder in einem separatem PDF geschehen.
|
||||
|
||||
|
||||
|
||||
44
Abgabe/sections/a1.aux
Normal file
44
Abgabe/sections/a1.aux
Normal file
@@ -0,0 +1,44 @@
|
||||
\relax
|
||||
\providecommand\hyper@newdestlabel[2]{}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {2.1}Vorverarbeitung}{10}{subsection.2.1}}
|
||||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.1.1}Rauschreduktion}{10}{subsubsection.2.1.1}}
|
||||
\newlabel{lst:code1}{{3}{10}{Vorverarbeitung, Aufgabe 1}{lstlisting.3}{}}
|
||||
\@writefile{lol}{\contentsline {lstlisting}{\numberline {3}Vorverarbeitung, Aufgabe 1}{10}{lstlisting.3}}
|
||||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.1.2}Histogramm Spreizung}{11}{subsubsection.2.1.2}}
|
||||
\newlabel{equ:histogramm-equalization}{{3}{11}{Histogramm Spreizung}{equation.2.3}{}}
|
||||
\newlabel{lst:code1}{{4}{11}{Vorverarbeitung, Aufgabe 4}{lstlisting.4}{}}
|
||||
\@writefile{lol}{\contentsline {lstlisting}{\numberline {4}Vorverarbeitung, Aufgabe 4}{11}{lstlisting.4}}
|
||||
\@setckpt{sections/a1}{
|
||||
\setcounter{page}{12}
|
||||
\setcounter{equation}{3}
|
||||
\setcounter{enumi}{0}
|
||||
\setcounter{enumii}{0}
|
||||
\setcounter{enumiii}{0}
|
||||
\setcounter{enumiv}{0}
|
||||
\setcounter{footnote}{2}
|
||||
\setcounter{mpfootnote}{0}
|
||||
\setcounter{sapage}{0}
|
||||
\setcounter{part}{0}
|
||||
\setcounter{section}{2}
|
||||
\setcounter{subsection}{1}
|
||||
\setcounter{subsubsection}{2}
|
||||
\setcounter{paragraph}{0}
|
||||
\setcounter{subparagraph}{0}
|
||||
\setcounter{figure}{5}
|
||||
\setcounter{table}{1}
|
||||
\setcounter{currfiledepth}{0}
|
||||
\setcounter{CurrentPage}{12}
|
||||
\setcounter{pagesLTS.pagenr}{17}
|
||||
\setcounter{pagesLTS.current.local.0}{1}
|
||||
\setcounter{pagesLTS.pnc.0}{0}
|
||||
\setcounter{Item}{0}
|
||||
\setcounter{Hfootnote}{2}
|
||||
\setcounter{bookmark@seq@number}{7}
|
||||
\setcounter{lstnumber}{2}
|
||||
\setcounter{pagesLTS.arabic.1.local.cnt}{17}
|
||||
\setcounter{section@level}{3}
|
||||
\setcounter{lstlisting}{4}
|
||||
\setcounter{pagesLTS.pnc.arabic}{1}
|
||||
\setcounter{pagesLTS.double.arabic}{1}
|
||||
\setcounter{pagesLTS.current.local.arabic}{12}
|
||||
}
|
||||
63
Abgabe/sections/a1.tex
Normal file
63
Abgabe/sections/a1.tex
Normal file
@@ -0,0 +1,63 @@
|
||||
\newpage
|
||||
\subsection{Vorverarbeitung}
|
||||
Um die folgende Verarbeitung der Bilder zu vereinfachen und robuster zu gestalten, sollen Sie den Videostream mit einem Preprocessing vorverarbeiten.
|
||||
Binden Sie dafür die Datei \textit{./CV-App/algorithms/invis\_cloak.py} in den Algorithmus ein, wie in der Einleitung beschrieben.
|
||||
Die folgenden Aufgabenstellungen sind in den dafür vorgesehenen Funktionen zu bearbeiten.
|
||||
%Erstellen Sie dafür einen neuen Algorithmus, wie in der Einleitung beschrieben.
|
||||
|
||||
\subsubsection{Rauschreduktion}
|
||||
Jeder Farbwert eines Pixels $I_k(x, y) \in \{0, \ldots, 255 \}$ mit $k\in \{R, G, B\}$ wird auf dem Kamerasensor durch einen elektrischen Halbleiter physikalisch gemessen. Je nach Sensorqualität und Lichtbedingungen wirkt dabei ein unterschiedlich ausgeprägtes Rauschen auf die Farbwerte ein, sodass der zur Verfügung stehende Farbwert als Summe
|
||||
|
||||
\begin{equation}
|
||||
I_k(x, y) = I^*_k(x, y) + r(x, y)
|
||||
\end{equation}
|
||||
|
||||
aus realem Farbwert $I^*_k(x, y) $ und statistischem Rauschen $r(x,y)$ modelliert werden kann. Das Rauschen $r$ kann als normalverteilt um den Mittelwert $0$ angenommen werden. Unter den Annahmen, dass die Kamera statisch montiert ist und in der aufgenommenen Szene keine Veränderung passiert, kann der Zusammenhang
|
||||
|
||||
\begin{equation}
|
||||
\overline{I}_{k,t}(x, y) = \lim_{N\rightarrow \infty} \frac{1}{N + 1} \sum_{n=0}^N I^*_{k,t-n}(x, y) + r_{t-n}(x, y) \stackrel{!}{=} I^*_{k,t}
|
||||
\end{equation}
|
||||
|
||||
für die Mittelwertbildung über lange Zeiträume formuliert werden. Dabei beschreibt $t$ den Zeitpunkt, zu dem der entsprechende Wert gemessen wurde.
|
||||
|
||||
Um die Bildqualität zu erhöhen, soll der Einfluss von $r$ reduziert werden. Es soll dafür angenommen werden, dass die Kamera statisch ist und kaum Bewegung in zwei aufeinander folgenden Bildern vorhanden ist.
|
||||
Implementieren Sie die Mittelwertbildung mit einer variablem Bildreihe $N$ (default: $N=1$) und geben Sie das Bild aus. \\
|
||||
Um zu prüfen wie das Bild auf Pixelebene arbeitet, kann die Variable \textit{plotNoise} in der Funktion \textit{process()} auf \textit{True} gesetzt werden.
|
||||
Es werden zwei zusätzliche Plots ausgegeben, in der ein Bildausschnitt des Zentrums vor- und nach der Rauschunterdrückung vergrößert dargestellt werden.
|
||||
|
||||
|
||||
\paragraph*{Aufgabe 1}
|
||||
Geben Sie Ihren Code an und beschreiben Sie ihn. Geben Sie nur relevante Code Bereiche an!
|
||||
\lstset{caption={Vorverarbeitung, Aufgabe 1}}
|
||||
\begin{lstlisting}
|
||||
# Your code!
|
||||
\end{lstlisting}
|
||||
|
||||
\paragraph*{Aufgabe 2}
|
||||
Nennen Sie Vor und Nachteile, wenn $N$ vergrößert werden würde. Sollte $N$ in dieser Anwendung vergrößert werden?
|
||||
|
||||
\paragraph*{Aufgabe 3}
|
||||
Beschreiben Sie eine weitere Methode zur Rauschreduktion. Diskutieren Sie dabei Vor- oder Nachteile!
|
||||
|
||||
\subsubsection{Histogramm Spreizung}
|
||||
Pixel können in unserer Anwendung Werte von $I_k(x,y) \in \{ 0, \ldots , 255 \}$ annehmen. Dieser Wertebereich wird nicht zwangsläufig ausgenutzt. Um das zu ändern, soll eine Histogramm Spreizung auf den Helligkeitsinformationen der Pixel durchgeführt werden.
|
||||
|
||||
Implementieren Sie zusätzlich zur Rauschreduktion eine Histogramm Spreizung, indem sie (1) das Rausch-reduzierte Eingangsbild in den HSV-Farbbereich transformieren und (2) die Rechenvorschrift~\ref{equ:histogramm-equalization} auf den V-Kanal anwenden. Transformieren Sie das Bild dann (3) wieder in den RGB Farbraum.
|
||||
|
||||
\begin{equation}
|
||||
\label{equ:histogramm-equalization}
|
||||
I_V^{\textnormal{new}}(x,y) = \frac{I_{V}(x,y) - \min I_{V}}{\max I_{V} - \min I_{V}} \cdot 255
|
||||
\end{equation}
|
||||
|
||||
\textbf{Hinweis:} Nutzen Sie die Befehle \textit{cv2.cvtColor(img, cv2.COLOR\_BGR2HSV)} beziehungsweise \textit{cv2.cvtColor(img, cv2.COLOR\_HSV2BGR)}.
|
||||
|
||||
|
||||
\paragraph*{Aufgabe 4}
|
||||
Geben Sie Ihren Code an und beschreiben Sie ihn. Geben Sie nur relevante Code Bereiche an!
|
||||
\lstset{caption={Vorverarbeitung, Aufgabe 4}}
|
||||
\begin{lstlisting}
|
||||
# Your code!
|
||||
\end{lstlisting}
|
||||
|
||||
\paragraph*{Aufgabe 5}
|
||||
Warum ist es sinnvoll, den gesamten Wertebereich für die Darstellung von Videos in Multimedia-Anwendungen auszunutzen?
|
||||
29
Abgabe/sections/a1.tex.aux
Normal file
29
Abgabe/sections/a1.tex.aux
Normal file
@@ -0,0 +1,29 @@
|
||||
\relax
|
||||
\@setckpt{sections/a1.tex}{
|
||||
\setcounter{page}{4}
|
||||
\setcounter{equation}{0}
|
||||
\setcounter{enumi}{0}
|
||||
\setcounter{enumii}{0}
|
||||
\setcounter{enumiii}{0}
|
||||
\setcounter{enumiv}{0}
|
||||
\setcounter{footnote}{0}
|
||||
\setcounter{mpfootnote}{0}
|
||||
\setcounter{sapage}{0}
|
||||
\setcounter{part}{0}
|
||||
\setcounter{section}{1}
|
||||
\setcounter{subsection}{0}
|
||||
\setcounter{subsubsection}{0}
|
||||
\setcounter{paragraph}{0}
|
||||
\setcounter{subparagraph}{0}
|
||||
\setcounter{figure}{0}
|
||||
\setcounter{table}{0}
|
||||
\setcounter{currfiledepth}{0}
|
||||
\setcounter{CurrentPage}{4}
|
||||
\setcounter{pagesLTS.pagenr}{3}
|
||||
\setcounter{pagesLTS.current.local.0}{1}
|
||||
\setcounter{pagesLTS.pnc.0}{0}
|
||||
\setcounter{pagesLTS.arabic.1.local.cnt}{3}
|
||||
\setcounter{pagesLTS.pnc.arabic}{1}
|
||||
\setcounter{pagesLTS.double.arabic}{1}
|
||||
\setcounter{pagesLTS.current.local.arabic}{4}
|
||||
}
|
||||
44
Abgabe/sections/a2.aux
Normal file
44
Abgabe/sections/a2.aux
Normal file
@@ -0,0 +1,44 @@
|
||||
\relax
|
||||
\providecommand\hyper@newdestlabel[2]{}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {2.2}Farbanalyse}{12}{subsection.2.2}}
|
||||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.2.1}RGB}{12}{subsubsection.2.2.1}}
|
||||
\newlabel{lst:Histogramm}{{5}{12}{Histogrammberechnung mit \textit {matplotlib}}{lstlisting.5}{}}
|
||||
\@writefile{lol}{\contentsline {lstlisting}{\numberline {5}Histogrammberechnung mit \textit {matplotlib}}{12}{lstlisting.5}}
|
||||
\newlabel{lst:code1}{{6}{13}{Farbanalyse, Aufgabe 1}{lstlisting.6}{}}
|
||||
\@writefile{lol}{\contentsline {lstlisting}{\numberline {6}Farbanalyse, Aufgabe 1}{13}{lstlisting.6}}
|
||||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.2.2}HSV}{13}{subsubsection.2.2.2}}
|
||||
\newlabel{equ:segrule}{{5}{13}{Aufgabe 5}{equation.2.5}{}}
|
||||
\@setckpt{sections/a2}{
|
||||
\setcounter{page}{14}
|
||||
\setcounter{equation}{5}
|
||||
\setcounter{enumi}{0}
|
||||
\setcounter{enumii}{0}
|
||||
\setcounter{enumiii}{0}
|
||||
\setcounter{enumiv}{0}
|
||||
\setcounter{footnote}{2}
|
||||
\setcounter{mpfootnote}{0}
|
||||
\setcounter{sapage}{0}
|
||||
\setcounter{part}{0}
|
||||
\setcounter{section}{2}
|
||||
\setcounter{subsection}{2}
|
||||
\setcounter{subsubsection}{2}
|
||||
\setcounter{paragraph}{0}
|
||||
\setcounter{subparagraph}{0}
|
||||
\setcounter{figure}{5}
|
||||
\setcounter{table}{1}
|
||||
\setcounter{currfiledepth}{0}
|
||||
\setcounter{CurrentPage}{14}
|
||||
\setcounter{pagesLTS.pagenr}{17}
|
||||
\setcounter{pagesLTS.current.local.0}{1}
|
||||
\setcounter{pagesLTS.pnc.0}{0}
|
||||
\setcounter{Item}{0}
|
||||
\setcounter{Hfootnote}{2}
|
||||
\setcounter{bookmark@seq@number}{10}
|
||||
\setcounter{lstnumber}{2}
|
||||
\setcounter{pagesLTS.arabic.1.local.cnt}{17}
|
||||
\setcounter{section@level}{3}
|
||||
\setcounter{lstlisting}{6}
|
||||
\setcounter{pagesLTS.pnc.arabic}{1}
|
||||
\setcounter{pagesLTS.double.arabic}{1}
|
||||
\setcounter{pagesLTS.current.local.arabic}{14}
|
||||
}
|
||||
64
Abgabe/sections/a2.tex
Normal file
64
Abgabe/sections/a2.tex
Normal file
@@ -0,0 +1,64 @@
|
||||
\newpage
|
||||
\subsection{Farbanalyse}
|
||||
Die Zugrundeliegende Aufgabe ist die Detektion des \glqq magischen Umhangs\grqq , der Objekte verschwinden lassen kann. Der Umhang kann durch eine einfarbige Decke modelliert werden. Sollte keine einfarbige Decke vorhanden sein, kann ebenfalls ein einfarbiges Blatt Papier zur Hilfe genommen werden.
|
||||
|
||||
Das Ziel des Arbeitspakets \glqq Farbanalyse\grqq\ ist es, die farblichen Eigenschaften der Szene, sowie des \glqq magischen Umhangs\grqq\ zu untersuchen. Dafür sollen die Histogramme einzelner Farbkanäle mit und ohne Umhang erstellt und analysiert werden.
|
||||
|
||||
\textbf{Hinweis:} Versuchen Sie von nun an die Position der Kamera nicht mehr zu verändern!
|
||||
|
||||
\subsubsection{RGB}
|
||||
Einzelne Pixel werden durch drei Werte repräsentiert. Jeweils ein Wert $I_k(x, y) \in \{0, \ldots, 255 \}$ mit $k\in \{R, G, B\}$ beschreibt die einfallende Lichtmenge für die Farben Rot, Grün und Blau. In OpenCV werden Bilder im BGR Format repräsentiert. Die Verteilung der Farbwerte kann durch ein Histogramm dargestellt werden. Ein Histogramm
|
||||
\begin{equation}
|
||||
h(v) = |I_v|
|
||||
\end{equation}
|
||||
beschreibt die Anzahl der Menge Pixel $I_v$ im Bild, welche den Wert $v$ haben. In OpenCV kann das Histogramm mit der Funktion \textit{cv2.calcHist(image, [Kanal], None, [histSize], histRange, False)} berechnet werden. Dabei gibt \textit{histSize} die Anzahl der Intervalle und $\textit{histRange} = (0, 256)$ die obere und untere Schrank für den zu betrachtenden Wertebereich an.
|
||||
|
||||
Implementieren Sie in Ihren Algorithmus eine Funktion, mit dem Sie per Mausklick das aktuelle Bild speichern können. Des Weiteren soll bei Betätigung des Mausklicks ein Histogramm für jeden Farbkanal des RGB-Bilder erstellt und abgespeichert werden. Mit Hilfe des Code-Schnipsel in Code \ref{lst:Histogramm} kann ein Histogramm angezeigt oder gespeichert werden!
|
||||
|
||||
\begin{lstlisting}[caption={Histogrammberechnung mit \textit{matplotlib}},label={lst:Histogramm}]
|
||||
import cv2
|
||||
from matplotlib import pyplot as plt
|
||||
|
||||
channel = 0 #[0:B, 1:G, 2:R]
|
||||
hist_size = 256
|
||||
hist_range = [0,256]
|
||||
histr = cv2.calcHist([img], [channel], None, [hist_size], hist_range)
|
||||
plt.plot(histr, color = "b")
|
||||
plt.xlim([0,256])
|
||||
plt.savefig('the_path_to_store.png')
|
||||
plt.show()
|
||||
\end{lstlisting}
|
||||
|
||||
Nehmen Sie mit dem fertig implementierten Code ein Bild und die Histogramme in der von Ihnen präferierten Szene auf. Nehmen Sie sich darauf den \glqq magischen Umhang\grqq zur Seite und halten ihn sehr gut sichtbar vor die Kamera. Nehmen Sie auch jetzt ein Bild mit den Histogrammen auf. Die Kamera sollte sich zwischen den beiden Bildern nicht bewegen.
|
||||
|
||||
|
||||
\paragraph*{Aufgabe 1}
|
||||
Geben Sie Ihren Code an und beschreiben Sie ihn. Geben Sie nur relevante Code Bereiche an! Geben sie zusätzlich die aufgenommenen Bilder und die erstellten Histogramme an.
|
||||
|
||||
\lstset{caption={Farbanalyse, Aufgabe 1}}
|
||||
\begin{lstlisting}
|
||||
# Your code!
|
||||
\end{lstlisting}
|
||||
|
||||
\paragraph*{Aufgabe 2}
|
||||
Interpretieren Sie die Veränderungen zwischen den Histogrammen mit und ohne \glqq magischen Umhang\grqq . Verhalten sich die einzelnen Kanäle gleich? Lassen sich Bereiche in den Histogrammen herausstellen, die dem Umhang zuzuordnen sind? Diskutieren Sie Ihre Beobachtungen.
|
||||
|
||||
\subsubsection{HSV}
|
||||
Erweitern Sie ihren vorherigen Code um eine Farbkonvertierung in den HSV-Farbraum. Führen Sie die Konvertierung vor Erstellung der Histogramme durch und wiederholen Sie die Schritte aus dem vorherigen Aufgabenteil.
|
||||
|
||||
\paragraph*{Aufgabe 3}
|
||||
Geben sie die aufgenommenen Bilder und die erstellten Histogramme an.
|
||||
|
||||
\paragraph*{Aufgabe 4}
|
||||
Interpretieren Sie die Veränderungen zwischen den Histogrammen mit und ohne \glqq magischen Umhang\grqq . Verhalten sich die einzelnen Kanäle gleich? Lassen sich Bereiche in den Histogrammen herausstellen, die dem Umhang zuzuordnen sind? Diskutieren Sie Ihre Beobachtungen.
|
||||
|
||||
\paragraph*{Aufgabe 5}
|
||||
Versuchen Sie mit den gegebenen Histogrammen Wertebereiche zu finden, mit denen Sie den \glqq magischen Umhang\grqq\ segmentieren könnten. Formulieren Sie eine Regel in dem Format
|
||||
\begin{equation}
|
||||
\label{equ:segrule}
|
||||
S_\textnormal{Umhang} = \{ I(x, y)\ |\ \\ R_\textnormal{min} < I_R(x, y) < R_\textnormal{max} \ \ \textnormal{und} \ \ \ldots \} \quad ,
|
||||
\end{equation}
|
||||
wobei $S_\textnormal{Umhang}$ die Binärmaske beschreibt und $R_\textnormal{min}$ und $R_\textnormal{max}$ beispielhafte Schwellwerte für den Rot-Kanal sind.
|
||||
|
||||
\paragraph*{Aufgabe 6}
|
||||
Worauf muss geachtet werden, wenn mit dem H-Kanal des HSV-Farbraums gearbeitet wird?
|
||||
29
Abgabe/sections/a2.tex.aux
Normal file
29
Abgabe/sections/a2.tex.aux
Normal file
@@ -0,0 +1,29 @@
|
||||
\relax
|
||||
\@setckpt{sections/a2.tex}{
|
||||
\setcounter{page}{4}
|
||||
\setcounter{equation}{0}
|
||||
\setcounter{enumi}{0}
|
||||
\setcounter{enumii}{0}
|
||||
\setcounter{enumiii}{0}
|
||||
\setcounter{enumiv}{0}
|
||||
\setcounter{footnote}{0}
|
||||
\setcounter{mpfootnote}{0}
|
||||
\setcounter{sapage}{0}
|
||||
\setcounter{part}{0}
|
||||
\setcounter{section}{1}
|
||||
\setcounter{subsection}{0}
|
||||
\setcounter{subsubsection}{0}
|
||||
\setcounter{paragraph}{0}
|
||||
\setcounter{subparagraph}{0}
|
||||
\setcounter{figure}{0}
|
||||
\setcounter{table}{0}
|
||||
\setcounter{currfiledepth}{0}
|
||||
\setcounter{CurrentPage}{4}
|
||||
\setcounter{pagesLTS.pagenr}{3}
|
||||
\setcounter{pagesLTS.current.local.0}{1}
|
||||
\setcounter{pagesLTS.pnc.0}{0}
|
||||
\setcounter{pagesLTS.arabic.1.local.cnt}{3}
|
||||
\setcounter{pagesLTS.pnc.arabic}{1}
|
||||
\setcounter{pagesLTS.double.arabic}{1}
|
||||
\setcounter{pagesLTS.current.local.arabic}{4}
|
||||
}
|
||||
50
Abgabe/sections/a3.aux
Normal file
50
Abgabe/sections/a3.aux
Normal file
@@ -0,0 +1,50 @@
|
||||
\relax
|
||||
\providecommand\hyper@newdestlabel[2]{}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {2.3}Segmentierung und Bildmodifizierung}{14}{subsection.2.3}}
|
||||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.3.1}Statisches Schwellwertverfahren}{14}{subsubsection.2.3.1}}
|
||||
\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}}
|
||||
\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{toc}{\contentsline {subsubsection}{\numberline {2.3.2}Bin\"armaske}{15}{subsubsection.2.3.2}}
|
||||
\newlabel{lst:contours}{{9}{15}{Konturfindung}{lstlisting.9}{}}
|
||||
\@writefile{lol}{\contentsline {lstlisting}{\numberline {9}Konturfindung}{15}{lstlisting.9}}
|
||||
\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{toc}{\contentsline {subsubsection}{\numberline {2.3.3}Bildmodifizierung}{15}{subsubsection.2.3.3}}
|
||||
\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}}
|
||||
\@setckpt{sections/a3}{
|
||||
\setcounter{page}{17}
|
||||
\setcounter{equation}{5}
|
||||
\setcounter{enumi}{0}
|
||||
\setcounter{enumii}{0}
|
||||
\setcounter{enumiii}{0}
|
||||
\setcounter{enumiv}{0}
|
||||
\setcounter{footnote}{2}
|
||||
\setcounter{mpfootnote}{0}
|
||||
\setcounter{sapage}{0}
|
||||
\setcounter{part}{0}
|
||||
\setcounter{section}{2}
|
||||
\setcounter{subsection}{3}
|
||||
\setcounter{subsubsection}{3}
|
||||
\setcounter{paragraph}{0}
|
||||
\setcounter{subparagraph}{0}
|
||||
\setcounter{figure}{5}
|
||||
\setcounter{table}{1}
|
||||
\setcounter{currfiledepth}{0}
|
||||
\setcounter{CurrentPage}{17}
|
||||
\setcounter{pagesLTS.pagenr}{17}
|
||||
\setcounter{pagesLTS.current.local.0}{1}
|
||||
\setcounter{pagesLTS.pnc.0}{0}
|
||||
\setcounter{Item}{0}
|
||||
\setcounter{Hfootnote}{2}
|
||||
\setcounter{bookmark@seq@number}{14}
|
||||
\setcounter{lstnumber}{2}
|
||||
\setcounter{pagesLTS.arabic.1.local.cnt}{17}
|
||||
\setcounter{section@level}{3}
|
||||
\setcounter{lstlisting}{11}
|
||||
\setcounter{pagesLTS.pnc.arabic}{1}
|
||||
\setcounter{pagesLTS.double.arabic}{1}
|
||||
\setcounter{pagesLTS.current.local.arabic}{17}
|
||||
}
|
||||
81
Abgabe/sections/a3.tex
Normal file
81
Abgabe/sections/a3.tex
Normal file
@@ -0,0 +1,81 @@
|
||||
\newpage
|
||||
\subsection{Segmentierung und Bildmodifizierung}
|
||||
In diesem Arbeitspaket werden Sie auf Grundlage der vorherigen Analysen eine Segmentierung des magischen Umhangs realisieren. Anschließend werden Sie den segmentierten Bereich \glqq verschwinden\grqq\ lassen, indem sie ein statisches Bild des Hintergrunds auf diese Flächen einfügen.
|
||||
|
||||
|
||||
\subsubsection{Statisches Schwellwertverfahren}
|
||||
Implementieren Sie die von Ihnen gefundene Regel nach Gleichung~\ref{equ:segrule}, um eine Binärmaske zu erhalten. Sie können die Randbedingungen wie im folgenden Code-Schnipsel \ref{lst:conditions} implementieren.
|
||||
|
||||
\begin{lstlisting}[caption={Benutzung von Randbedingungen mit \textit{numpy}}, label={lst:conditions}]
|
||||
import cv2
|
||||
import numpy as np
|
||||
|
||||
channel1 = 0
|
||||
lower_bound1, upper_bound1 = 15, 100
|
||||
is_condition_1_true = (lower_bound1 < img[:, :, channel1]) * \
|
||||
(img[:, :, channel1] < upper_bound1)
|
||||
channel2 = 1
|
||||
lower_bound2, upper_bound2 = 65, 172
|
||||
is_condition_2_true = (lower_bound2 < img[:, :, channel2]) * \
|
||||
(img[:, :, channel2] < upper_bound2)
|
||||
|
||||
binary_mask = is_condition_1_true * is_condition_2_true
|
||||
\end{lstlisting}
|
||||
|
||||
Geben Sie die gefundene Binärmaske als Ausgangsbild auf dem Bildschirm aus. Sollten die gefundenen Wertebereich zu keinen sinnvollen Segmentierungen führen, dürfen Sie Gleichung~\ref{equ:segrule} selbstverständlich anpassen!
|
||||
|
||||
Implementieren Sie ebenfalls eine Mausklick-Funktion, mit der Sie das aktuelle Bild und die dazugehörige Binärmaske abspeichern können. Für das Abspeichern von Bildern können Sie die Funktion \textit{cv2.imwrite(img, "path\_to\_store.png")} verwenden.
|
||||
|
||||
\paragraph*{Aufgabe 1}
|
||||
Geben Sie Ihren Code an und beschreiben Sie ihn. Geben Sie nur relevante Code Bereiche an! Geben Sie ebenfalls das aufgenommene Bild sowie die dazugehörige Binärmaske an.
|
||||
|
||||
\lstset{caption={Segmentierung und Bildmodifizierung, Aufgabe 1}}
|
||||
\begin{lstlisting}
|
||||
# Your code!
|
||||
\end{lstlisting}
|
||||
|
||||
\subsubsection{Binärmaske}
|
||||
Die in der vorherigen Aufgabe erhaltene Binärmaske ist ggf.\ ungeeignet für eine zufriedenstellende Segmentierung. Sie sollen die Maske nun optimieren. Wenden Sie dafür das \textit{Opening} und \textit{Closing} auf die Binärmaske an. Nutzen Sie die Funktionen \textit{cv2.erode(img, kernel)} und \textit{cv2.dilate(img, kernel)}.
|
||||
|
||||
Wählen Sie zum Schluss die größte zusammenhänge Region segmentierter Pixel aus, und löschen alle anderen Segmente. Folgender Code-Schnipsel~\ref{lst:contours} soll als Hilfestellung dienen. Recherchieren Sie ggf.\ im Internet.
|
||||
|
||||
\lstset{caption={Konturfindung}}
|
||||
\lstset{label={lst:contours}}
|
||||
\begin{lstlisting}
|
||||
(cnts, _) = cv2.findContours(
|
||||
binary_mask, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)
|
||||
c = max(cnts, key = cv2.contourArea)
|
||||
img = cv2.drawContours(img, [c], -1, color=255, -1)
|
||||
\end{lstlisting}
|
||||
|
||||
\paragraph*{Aufgabe 2}
|
||||
Geben Sie Ihren Code an und beschreiben Sie ihn. Geben Sie nur relevante Code Bereiche an!
|
||||
\lstset{caption={Segmentierung und Bildmodifizierung, Aufgabe 2}}
|
||||
\begin{lstlisting}
|
||||
# Your code!
|
||||
\end{lstlisting}
|
||||
|
||||
\paragraph*{Aufgabe 3}
|
||||
Welche Probleme oder Fehler können in der Binärmaske vorkommen, die mit den Maßnahmen beseitigt werden sollen?
|
||||
|
||||
\subsubsection{Bildmodifizierung}
|
||||
Nach dem Fertigstellen der vorherigen Aufgabenstellungen sollten Sie nun eine Binärmaske erhalten, welche den \glqq magischen Umhang\grqq\ segmentiert. Die letzte Aufgabe befasst sich mit der Bildmodifizierung, welche den Eindruck verschwindender Objekte vermittelt.
|
||||
|
||||
Sie sollen nun folgende Funktionen implementieren:
|
||||
|
||||
Erstellen Sie eine Member-Variable (z.B. \textit{self.variable}) in die Algorithmus Funktion \textit{\_\_init\_\_()}. Initiieren Sie die Variable mit dem Wert \textit{None}.
|
||||
Modifizieren Sie den Algorithmus, sodass Sie mit einem Mausklick ein Bild in die Variable speichern können. Dieses Bild wird als Hintergrund definiert. Mausklick-Funktionen aus vorherigen Aufgaben können überschrieben werden!
|
||||
|
||||
Solange kein Bild in der Variable gespeichert ist, soll das Eingangsbild direkt wieder ausgegeben werden. Sobald ein Hintergrund vorhanden ist soll folgendes passieren: Modifizieren Sie das Bild, indem Sie das Ausgangsbild aus dem derzeitigen Kamera-Stream und dem Hintergrund zusammenfügen. Die durch die Binärmaske segmentierte Fläche soll aus dem Hintergrund entnommen werden, die unsegmentierte Fläche aus dem derzeitigen Videostream.
|
||||
|
||||
\textbf{Hinweis:} Verlassen Sie das Sichtfeld der Kamera, während Sie die Hintergrund Aufnahme aufnehmen.
|
||||
|
||||
\paragraph*{Aufgabe 4}
|
||||
Geben Sie Ihren Code an und beschreiben Sie ihn. Geben Sie nur relevante Code Bereiche an!
|
||||
\lstset{caption={Segmentierung und Bildmodifizierung, Aufgabe 4}}
|
||||
\begin{lstlisting}
|
||||
# Your code!
|
||||
\end{lstlisting}
|
||||
|
||||
\paragraph*{Aufgabe 5}
|
||||
Geben Sie ein Bild (z.B. Screenshot) an, in dem die Funktion Ihres \glqq magischen Umhangs\grqq\ gezeigt wird!
|
||||
29
Abgabe/sections/a3.tex.aux
Normal file
29
Abgabe/sections/a3.tex.aux
Normal file
@@ -0,0 +1,29 @@
|
||||
\relax
|
||||
\@setckpt{sections/a3.tex}{
|
||||
\setcounter{page}{4}
|
||||
\setcounter{equation}{0}
|
||||
\setcounter{enumi}{0}
|
||||
\setcounter{enumii}{0}
|
||||
\setcounter{enumiii}{0}
|
||||
\setcounter{enumiv}{0}
|
||||
\setcounter{footnote}{0}
|
||||
\setcounter{mpfootnote}{0}
|
||||
\setcounter{sapage}{0}
|
||||
\setcounter{part}{0}
|
||||
\setcounter{section}{1}
|
||||
\setcounter{subsection}{0}
|
||||
\setcounter{subsubsection}{0}
|
||||
\setcounter{paragraph}{0}
|
||||
\setcounter{subparagraph}{0}
|
||||
\setcounter{figure}{0}
|
||||
\setcounter{table}{0}
|
||||
\setcounter{currfiledepth}{0}
|
||||
\setcounter{CurrentPage}{4}
|
||||
\setcounter{pagesLTS.pagenr}{3}
|
||||
\setcounter{pagesLTS.current.local.0}{1}
|
||||
\setcounter{pagesLTS.pnc.0}{0}
|
||||
\setcounter{pagesLTS.arabic.1.local.cnt}{3}
|
||||
\setcounter{pagesLTS.pnc.arabic}{1}
|
||||
\setcounter{pagesLTS.double.arabic}{1}
|
||||
\setcounter{pagesLTS.current.local.arabic}{4}
|
||||
}
|
||||
37
Abgabe/sections/conclusion.aux
Normal file
37
Abgabe/sections/conclusion.aux
Normal file
@@ -0,0 +1,37 @@
|
||||
\relax
|
||||
\providecommand\hyper@newdestlabel[2]{}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {3}Zusammenfassung}{17}{section.3}}
|
||||
\@setckpt{sections/conclusion}{
|
||||
\setcounter{page}{18}
|
||||
\setcounter{equation}{5}
|
||||
\setcounter{enumi}{0}
|
||||
\setcounter{enumii}{0}
|
||||
\setcounter{enumiii}{0}
|
||||
\setcounter{enumiv}{0}
|
||||
\setcounter{footnote}{2}
|
||||
\setcounter{mpfootnote}{0}
|
||||
\setcounter{sapage}{0}
|
||||
\setcounter{part}{0}
|
||||
\setcounter{section}{3}
|
||||
\setcounter{subsection}{0}
|
||||
\setcounter{subsubsection}{0}
|
||||
\setcounter{paragraph}{0}
|
||||
\setcounter{subparagraph}{0}
|
||||
\setcounter{figure}{5}
|
||||
\setcounter{table}{1}
|
||||
\setcounter{currfiledepth}{0}
|
||||
\setcounter{CurrentPage}{18}
|
||||
\setcounter{pagesLTS.pagenr}{17}
|
||||
\setcounter{pagesLTS.current.local.0}{1}
|
||||
\setcounter{pagesLTS.pnc.0}{0}
|
||||
\setcounter{Item}{0}
|
||||
\setcounter{Hfootnote}{2}
|
||||
\setcounter{bookmark@seq@number}{15}
|
||||
\setcounter{lstnumber}{2}
|
||||
\setcounter{pagesLTS.arabic.1.local.cnt}{17}
|
||||
\setcounter{section@level}{1}
|
||||
\setcounter{lstlisting}{11}
|
||||
\setcounter{pagesLTS.pnc.arabic}{1}
|
||||
\setcounter{pagesLTS.double.arabic}{1}
|
||||
\setcounter{pagesLTS.current.local.arabic}{18}
|
||||
}
|
||||
42
Abgabe/sections/conclusion.log
Normal file
42
Abgabe/sections/conclusion.log
Normal file
@@ -0,0 +1,42 @@
|
||||
This is pdfTeX, Version 3.14159265-2.6-1.40.18 (TeX Live 2017/TeX Live for SUSE Linux) (preloaded format=pdflatex 2020.8.24) 31 MAR 2021 16:10
|
||||
entering extended mode
|
||||
restricted \write18 enabled.
|
||||
%&-line parsing enabled.
|
||||
**conclusion.tex
|
||||
(./conclusion.tex
|
||||
LaTeX2e <2017-04-15>
|
||||
Babel <3.10> and hyphenation patterns for 84 language(s) loaded.
|
||||
|
||||
! LaTeX Error: Missing \begin{document}.
|
||||
|
||||
See the LaTeX manual or LaTeX Companion for explanation.
|
||||
Type H <return> for immediate help.
|
||||
...
|
||||
|
||||
l.3 s
|
||||
adsad
|
||||
You're in trouble here. Try typing <return> to proceed.
|
||||
If that doesn't work, type X <return> to quit.
|
||||
|
||||
Missing character: There is no s in font nullfont!
|
||||
Missing character: There is no a in font nullfont!
|
||||
Missing character: There is no d in font nullfont!
|
||||
Missing character: There is no s in font nullfont!
|
||||
Missing character: There is no a in font nullfont!
|
||||
Missing character: There is no d in font nullfont!
|
||||
)
|
||||
! Emergency stop.
|
||||
<*> conclusion.tex
|
||||
|
||||
*** (job aborted, no legal \end found)
|
||||
|
||||
|
||||
Here is how much of TeX's memory you used:
|
||||
5 strings out of 492995
|
||||
163 string characters out of 6141053
|
||||
54074 words of memory out of 5000000
|
||||
3658 multiletter control sequences out of 15000+600000
|
||||
3640 words of font info for 14 fonts, out of 8000000 for 9000
|
||||
1141 hyphenation exceptions out of 8191
|
||||
5i,0n,4p,43b,14s stack positions out of 5000i,500n,10000p,200000b,80000s
|
||||
! ==> Fatal error occurred, no output PDF file produced!
|
||||
3
Abgabe/sections/conclusion.tex
Normal file
3
Abgabe/sections/conclusion.tex
Normal file
@@ -0,0 +1,3 @@
|
||||
\newpage
|
||||
\section{Zusammenfassung}
|
||||
Herzlichen Gl\"uckwunsch! Sie haben in diesem Labor eine Bildverarbeitungs-Pipeline erfolgreich implementiert. Bitte fassen Sie die genutzten Methoden und Erkenntnisse kurz zusammen.
|
||||
54
Abgabe/sections/overview.aux
Normal file
54
Abgabe/sections/overview.aux
Normal file
@@ -0,0 +1,54 @@
|
||||
\relax
|
||||
\providecommand\hyper@newdestlabel[2]{}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {1}Einleitung}{3}{section.1}}
|
||||
\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Harry Potter ohne magischen Tarnumhang}}{3}{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}}
|
||||
\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{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces Programmierumgebung in PyCharm}}{4}{figure.3}}
|
||||
\newlabel{fig:pycharm}{{3}{4}{Programmierumgebung in PyCharm}{figure.3}{}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {1.2}Programmierumgebung}{5}{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}}
|
||||
\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}}
|
||||
\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}{}}
|
||||
\@writefile{lol}{\contentsline {lstlisting}{\numberline {1}Eigener Algorithmus in \textit {your\_algorithm.py}}{6}{lstlisting.1}}
|
||||
\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}}
|
||||
\@setckpt{sections/overview}{
|
||||
\setcounter{page}{8}
|
||||
\setcounter{equation}{0}
|
||||
\setcounter{enumi}{0}
|
||||
\setcounter{enumii}{0}
|
||||
\setcounter{enumiii}{0}
|
||||
\setcounter{enumiv}{0}
|
||||
\setcounter{footnote}{2}
|
||||
\setcounter{mpfootnote}{0}
|
||||
\setcounter{sapage}{0}
|
||||
\setcounter{part}{0}
|
||||
\setcounter{section}{1}
|
||||
\setcounter{subsection}{2}
|
||||
\setcounter{subsubsection}{0}
|
||||
\setcounter{paragraph}{0}
|
||||
\setcounter{subparagraph}{0}
|
||||
\setcounter{figure}{4}
|
||||
\setcounter{table}{1}
|
||||
\setcounter{currfiledepth}{0}
|
||||
\setcounter{CurrentPage}{8}
|
||||
\setcounter{pagesLTS.pagenr}{17}
|
||||
\setcounter{pagesLTS.current.local.0}{1}
|
||||
\setcounter{pagesLTS.pnc.0}{0}
|
||||
\setcounter{Item}{0}
|
||||
\setcounter{Hfootnote}{2}
|
||||
\setcounter{bookmark@seq@number}{3}
|
||||
\setcounter{lstnumber}{10}
|
||||
\setcounter{pagesLTS.arabic.1.local.cnt}{17}
|
||||
\setcounter{section@level}{2}
|
||||
\setcounter{lstlisting}{2}
|
||||
\setcounter{pagesLTS.pnc.arabic}{1}
|
||||
\setcounter{pagesLTS.double.arabic}{1}
|
||||
\setcounter{pagesLTS.current.local.arabic}{8}
|
||||
}
|
||||
130
Abgabe/sections/overview.tex
Normal file
130
Abgabe/sections/overview.tex
Normal file
@@ -0,0 +1,130 @@
|
||||
\newpage
|
||||
\section{Einleitung}
|
||||
Digitale Bildverarbeitung wird unter anderem in industriellen Prozessen, medizinischen Verfahren oder in Multimedia-Produkten angewandt. In diesem Labor soll eine beispielhafte Multimedia-Anwendung entwickelt werden, die über das Labor hinaus als erheiterndes Demonstrationsobjekt für Bildverarbeitung in Videokonferenzen genutzt werden kann. Als Inspiration dient ein Effekt aus der Filmreihe \glqq Harry Potter\grqq .
|
||||
|
||||
\begin{figure}
|
||||
\centering
|
||||
\begin{minipage}{.45\textwidth}
|
||||
\centering
|
||||
\includegraphics[width=.6\linewidth]{fig/harry1.jpg}
|
||||
\caption{Harry Potter ohne magischen Tarnumhang}
|
||||
\label{fig:harry1}
|
||||
\end{minipage}%
|
||||
\hspace{0.5cm}
|
||||
\begin{minipage}{.45\textwidth}
|
||||
\centering
|
||||
\includegraphics[width=.6\linewidth]{fig/harry2.jpg}
|
||||
\caption{Harry Potter mit magischem Tarnumhang}
|
||||
\label{fig:harry2}
|
||||
\end{minipage}
|
||||
\end{figure}
|
||||
|
||||
Die Abbildungen \ref{fig:harry1} und \ref{fig:harry2} zeigen Harry Potter ohne
|
||||
\footnote{\url{https://assets.cdn.moviepilot.de/files/8a2cc0d2eb31c41136fb2be242540606dcd50821980e830481404b276065/fill/1280/614/Harry\%20Potter\%20Tarnumhang.jpg}}
|
||||
und mit\footnote{\url{https://www.tres-click.com/wp-content/uploads/2019/06/harry-potter-tarnumhang.gif}}
|
||||
verzauberten Tarnumhang, welchen den Träger des Umhangs verschwinden lassen kann. In diesem Labor entwickeln Sie eine Bildverarbeitungs-Pipeline, mit welcher dieser Effekt mit einer einfachen Webcam simuliert werden kann. Sie festigen den Umgang mit
|
||||
|
||||
\begin{itemize}
|
||||
\item Rauschunterdrückung
|
||||
\item Histogrammen
|
||||
\item verschiedenen Farbräumen
|
||||
\item Erosion und Dilatation
|
||||
\item Schwellwertverfahren
|
||||
\end{itemize}
|
||||
|
||||
und üben gleichzeitig den Umgang mit der Programmiersprache Python.
|
||||
|
||||
\newpage
|
||||
\subsection{Vorbereitung}
|
||||
Für das Labor wird ein Rechner mit Betriebssystem Windows, Linux-Ubuntu oder Mac benötigt. Zusätzlich muss eine Webcam vorhanden sein (im Laptop integriert oder extern).
|
||||
Melden Sie sich \textbf{vorab} bei dem Betreuer des Labors, sollte Ihnen eines der benötigten Mittel nicht zur Verfügung stehen.
|
||||
|
||||
|
||||
Um an dem Labor erfolgreich teilnehmen zu können, muss die zu nutzende Programmierumgebung vorbereitet werden. Sollten Sie an der praktischen Übung zur Vorlesung \textit{Digitale Bildverarbeitung} teilgenommen haben, ist die erforderliche Programmierumgebung sowie der Programmcode wahrscheinlich bereits installiert und eingerichtet. Ansonsten befolgen Sie die Installationsanweisungen auf \url{https://github.com/TimoK93/Digitale-Bildverarbeitung} im Bereich \textit{0\_Einführung}. Die Installation des Streaming Programms zur Erstellung einer virtuellen Kamera ist dabei optional und nicht verpflichtend.
|
||||
|
||||
Nachdem Sie die Installation vollendet haben, öffnen Sie die Programmierumgebung, sodass Ihr Bildschirm Ähnliches zu Abbildung \ref{fig:pycharm} anzeigt.
|
||||
|
||||
\begin{figure}
|
||||
\centering
|
||||
\includegraphics[width=\linewidth]{fig/pycharm.png}
|
||||
\caption{Programmierumgebung in PyCharm}
|
||||
\label{fig:pycharm}
|
||||
\end{figure}
|
||||
|
||||
Machen Sie sich als nächstes mithilfe der Beschreibung in Kapitel \ref{sec:Programmierumgebung} mit der Programmierumgebung vertraut.
|
||||
|
||||
|
||||
|
||||
\newpage
|
||||
\subsection{Programmierumgebung}
|
||||
\label{sec:Programmierumgebung}
|
||||
In der Programmierumgebung ist das Hauptprogramm bereits soweit vorbereitet, sodass Sie einen Videostream aus Ihrer Kamera auslesen, darauf einen vorbereiteten Beispielalgorithmus anwenden und diesen anzeigen können. In diesem Kapitel wird kurz erläutert, wie Sie diese Bildverarbeitungs-Pipeline starten und eigene Algorithmen integrieren können.
|
||||
|
||||
\paragraph*{Starten der Bildverarbeitungs-Pipeline.} Öffnen Sie die Datei \mbox{\textit{./CV-App/main.py}} in PyCharm und klicken Sie mit der rechten Maustaste in den Programmcode. Öffnen Sie dann das Fenster \textit{Modify Run Configuration...} wie in Abbildung \ref{fig:run_config} dargestellt. In dem Feld \textit{Parameter} können Sie zusätzliche Argumente in die Umgebung eingeben. Argumente werden dabei im Schema \textit{--Argument1 Value1 --Argument2 Value2} eingegeben. Die einzustellenden Parameter können Sie aus der Tabelle \ref{tab:parameter} entnehmen. Wenn Sie keine Argumente wählen, werden die Standard Einstellungen gewählt.
|
||||
|
||||
\begin{table}
|
||||
\centering
|
||||
\caption{Argumente für die Programmausführung}
|
||||
\begin{tabular}[h]{c | l| c}
|
||||
Argument & Werte & Default-Wert \\ \toprule
|
||||
\textit{camera} & -1, 0, 1, \ldots (-1 öffnet ein Video) & 0 \\
|
||||
\textit{mode} & \textit{virtual\_cam} (virtuelle Kamera), \textit{screen} (nur Fenster)& \textit{virtual\_cam} \\
|
||||
\textit{video} & Pfad zu Video, wenn \textit{camera} den Wert $-1$ hat. & - \\
|
||||
\end{tabular}
|
||||
\label{tab:parameter}
|
||||
\end{table}
|
||||
|
||||
\begin{figure}
|
||||
\centering
|
||||
\includegraphics[width=0.65\linewidth]{fig/Run-Configs.png}
|
||||
\caption{Run Configuration in PyCharm}
|
||||
\label{fig:run_config}
|
||||
\end{figure}
|
||||
|
||||
Sie können das Programm nun mit \textit{Run} starten. Kurz nach dem Start sollten Sie ein Fenster mit dem Videostream aus Ihrer Kamera sehen. Durch das Betätigen verschiedener Tasten auf der Tastatur (z.B.\ Taste 1 oder 2) können Sie verschiedene Algorithmen aktivieren. Sie sehen das Ergebnis direkt in dem ausgegebenem Videostream. Wichtig: Das Programm reagiert nur auf Tastendrücke, wenn das Videostream-Fenster im Vordergrund ihres Bildschirms ist.
|
||||
|
||||
|
||||
\paragraph*{Eigene Algorithmen einbinden.} Für Sie sind nur die Dateien im Dateipfad \mbox{ \textit{./CV-App/algorithms}} relevant. Beispielhaft erstellen Sie im Folgenden den Algorithmus \textit{YourAlgorithm}.
|
||||
|
||||
Erstellen Sie eine Datei \textit{your\_algorithm.py} und kopieren Sie den Inhalt aus dem Code \ref{lst:code2}. In der Funktion \textit{\_\_init\_\_(self)} können Sie dauerhafte Variablen definieren. Die Funktion \textit{process(self, img)} verarbeitet das Eingangsbild \textit{img} und gibt es am Ende modifiziert wieder aus (Hinweis: Ein und Ausgangsbild müssen gleich groß sein!). Die Funktion \textit{mouse\_callback(self, ...)} reagiert auf Aktionen der Maus, wie zum Beispiel einem Mausklick an der Position x und y. So können Sie mit ihrem Algorithmus interagieren. Sie können sich einige Beispielalgorithmen in dem Ordner \textit{./CV-App/algorithms} zur Veranschaulichung ansehen. Der Algorithmus in \textit{white\_balancing.py} veranschaulicht alle Funktionen mit Algorithmen der Klasse \textit{Algorithm}.
|
||||
|
||||
% Settings for listings
|
||||
\lstset{caption={Eigener Algorithmus in \textit{your\_algorithm.py}}}
|
||||
\lstset{label={lst:code2}}
|
||||
\begin{lstlisting}
|
||||
import cv2
|
||||
import numpy as np
|
||||
from . import Algorithm
|
||||
|
||||
class YourAlgorithm(Algorithm):
|
||||
def __init__(self):
|
||||
self.some_persistent_value = "i_am_alwys_existing"
|
||||
|
||||
def process(self, img):
|
||||
print(self.some_persistent_value)
|
||||
return img
|
||||
|
||||
def mouse_callback(self, event, x, y, flags, param):
|
||||
if event == cv2.EVENT_LBUTTONUP:
|
||||
print("A Mouse click happend! at position", x, y)
|
||||
\end{lstlisting}
|
||||
|
||||
\newpage
|
||||
Um Ihren Algorithmus nun mit einer Aktivierungstaste-Taste zu verlinken, öffnen Sie die Datei \textit{\_\_init\_\_.py}. Am Ende der Datei ist eine Verlinkung der Algorithmen zu bestimmten Tasten zu sehen (siehe Code \ref{lst:code1}).. In dem Beispiel in Code \ref{lst:code1} ist Ihr neuer Algorithmus \textit{YourAlgorithm} importiert und an die Taste 3 verlinkt.
|
||||
|
||||
% Settings for listings
|
||||
\lstset{caption={Verlinkung der Algorithmen in \textit{\_\_init\_\_.py}}}
|
||||
\lstset{label={lst:code1}}
|
||||
\begin{lstlisting}
|
||||
from .image_to_gray import ImageToGray
|
||||
from .image_to_hue import ImageToHue
|
||||
from .your_algorithm import YourAlgorithm
|
||||
|
||||
algorithms = dict()
|
||||
algorithms["0"] = Algorithm
|
||||
algorithms["1"] = ImageToGray
|
||||
algorithms["2"] = ImageToHue
|
||||
algorithms["3"] = YourAlgorithm
|
||||
\end{lstlisting}
|
||||
|
||||
Nach Neustart des Programms durch erneute Betätigung der \textit{Run} Funktion, ist Ihr Algorithmus durch betätigen der Taste 3 zugänglich.
|
||||
29
Abgabe/sections/overview.tex.aux
Normal file
29
Abgabe/sections/overview.tex.aux
Normal file
@@ -0,0 +1,29 @@
|
||||
\relax
|
||||
\@setckpt{sections/overview.tex}{
|
||||
\setcounter{page}{3}
|
||||
\setcounter{equation}{0}
|
||||
\setcounter{enumi}{0}
|
||||
\setcounter{enumii}{0}
|
||||
\setcounter{enumiii}{0}
|
||||
\setcounter{enumiv}{0}
|
||||
\setcounter{footnote}{0}
|
||||
\setcounter{mpfootnote}{0}
|
||||
\setcounter{sapage}{0}
|
||||
\setcounter{part}{0}
|
||||
\setcounter{section}{0}
|
||||
\setcounter{subsection}{0}
|
||||
\setcounter{subsubsection}{0}
|
||||
\setcounter{paragraph}{0}
|
||||
\setcounter{subparagraph}{0}
|
||||
\setcounter{figure}{0}
|
||||
\setcounter{table}{0}
|
||||
\setcounter{currfiledepth}{0}
|
||||
\setcounter{CurrentPage}{3}
|
||||
\setcounter{pagesLTS.pagenr}{2}
|
||||
\setcounter{pagesLTS.current.local.0}{1}
|
||||
\setcounter{pagesLTS.pnc.0}{0}
|
||||
\setcounter{pagesLTS.arabic.1.local.cnt}{2}
|
||||
\setcounter{pagesLTS.pnc.arabic}{1}
|
||||
\setcounter{pagesLTS.double.arabic}{1}
|
||||
\setcounter{pagesLTS.current.local.arabic}{3}
|
||||
}
|
||||
Reference in New Issue
Block a user