Finish documentation
This commit is contained in:
@@ -31,7 +31,24 @@ Geben Sie Ihren Code an und beschreiben Sie ihn. Geben Sie nur relevante Code Be
|
||||
|
||||
\lstset{caption={Segmentierung und Bildmodifizierung, Aufgabe 1}}
|
||||
\begin{lstlisting}
|
||||
# Your code!
|
||||
def _23_SegmentUndBildmodifizierung (self, img, save_binary_mask = False):
|
||||
# Convert BGR -> HSV
|
||||
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
|
||||
|
||||
# Area 1: H = 0-10 (strong Rot)
|
||||
lower_red1 = np.array([0, 100, 50])
|
||||
upper_red1 = np.array([0, 255, 255])
|
||||
|
||||
# Area 2: H = 169-179 (red-violet)
|
||||
lower_red2 = np.array([171, 100, 50])
|
||||
upper_red2 = np.array([179, 255, 255])
|
||||
|
||||
# Create binary mask for both red areas
|
||||
mask1 = cv2.inRange(hsv, lower_red1, upper_red1)
|
||||
mask2 = cv2.inRange(hsv, lower_red2, upper_red2)
|
||||
|
||||
# Combine both masks
|
||||
mask = cv2.bitwise_or(mask1, mask2)
|
||||
\end{lstlisting}
|
||||
|
||||
\subsubsection{Bin<EFBFBD>rmaske}
|
||||
@@ -52,12 +69,36 @@ img = cv2.drawContours(img, [c], -1, color=255, -1)
|
||||
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!
|
||||
def _23_SegmentUndBildmodifizierung (self, img, save_binary_mask = False):
|
||||
# ...
|
||||
|
||||
# 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)
|
||||
\end{lstlisting}
|
||||
|
||||
\paragraph*{Aufgabe 3}
|
||||
Welche Probleme oder Fehler k<>nnen in der Bin<69>rmaske vorkommen, die mit den Ma<4D>nahmen beseitigt werden sollen?
|
||||
|
||||
\color{blue}
|
||||
|
||||
Durch das Opening und Closing k<>nnen sich zwei Bereiche miteinander verbinden, die jedoch nicht zusammengeh<65>ren. Die Wahl des gr<67><72>ten zusammenh<6E>ngenden Segments kann relevante Bereiche auch einfach auslassen, wenn das Opening und Closing diesen nicht zu gr<67><72>ten Bereich zusammengef<65>hrt hat.
|
||||
|
||||
\color{black}
|
||||
|
||||
\subsubsection{Bildmodifizierung}
|
||||
Nach dem Fertigstellen der vorherigen Aufgabenstellungen sollten Sie nun eine Bin<69>rmaske erhalten, welche den \glqq magischen Umhang\grqq\ segmentiert. Die letzte Aufgabe befasst sich mit der Bildmodifizierung, welche den Eindruck verschwindender Objekte vermittelt.
|
||||
|
||||
@@ -74,8 +115,33 @@ Solange kein Bild in der Variable gespeichert ist, soll das Eingangsbild direkt
|
||||
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!
|
||||
def _23_SegmentUndBildmodifizierung (self, img, save_binary_mask = False):
|
||||
# ...
|
||||
|
||||
# Return image if no background is set
|
||||
if self.background is None:
|
||||
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
|
||||
\end{lstlisting}
|
||||
|
||||
\paragraph*{Aufgabe 5}
|
||||
Geben Sie ein Bild (z.B. Screenshot) an, in dem die Funktion Ihres \glqq magischen Umhangs\grqq\ gezeigt wird!
|
||||
Geben Sie ein Bild (z.B. Screenshot) an, in dem die Funktion Ihres \glqq magischen Umhangs\grqq\ gezeigt wird!
|
||||
|
||||
\begin{figure}
|
||||
\centering
|
||||
\includegraphics[width=10cm]{fig/Endergebnis.png}
|
||||
\caption{Endergebnis}
|
||||
\label{fig:histogram-endergebnis}
|
||||
\end{figure}
|
||||
Reference in New Issue
Block a user