Initial commit with project files

This commit is contained in:
2025-06-27 14:34:11 +02:00
commit 7ea3207e63
310 changed files with 9331 additions and 0 deletions

64
Abgabe/sections/a2.tex Normal file
View 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<61>r sollen die Histogramme einzelner Farbkan<61>le mit und ohne Umhang erstellt und analysiert werden.
\textbf{Hinweis:} Versuchen Sie von nun an die Position der Kamera nicht mehr zu ver<65>ndern!
\subsubsection{RGB}
Einzelne Pixel werden durch drei Werte repr<70>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<47>n und Blau. In OpenCV werden Bilder im BGR Format repr<70>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<65>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<70>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<75>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<65>nderungen zwischen den Histogrammen mit und ohne \glqq magischen Umhang\grqq . Verhalten sich die einzelnen Kan<61>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<65>nderungen zwischen den Histogrammen mit und ohne \glqq magischen Umhang\grqq . Verhalten sich die einzelnen Kan<61>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<69>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?