<jupyter_start><jupyter_text>codecentric.AI Bootcamp Aufgaben: Computer Vision Basics<jupyter_code>%matplotlib inline

import cv2
import numpy as np
from matplotlib.pyplot import imshow
from PIL import Image<jupyter_output><empty_output><jupyter_text>Aufgabe 1:Vervollständige das Tic Tac Toe Spielfeld aus dem vorherigen Notebook:- zeichne 2 horizontale und 2 vertikale Linien- zeichne ins mittlere Feld ein rotes X- zeichne ins Feld links oben ein grünes ONutze dafür die OpenCV-Funktionen `cv2.line()` und `cv2.circle`.<jupyter_code>width, height = 640, 480
color = (255, 255, 255)  # (255, 255, 255) entspricht weiss

# erzeuge eine schwarze leinwand mit 640 x 480px x 3 Farbkäle
# np.zeros(h,w,3) erzeugt einen 3 diminsionalen Numpy Array mit 8-Bit Integern (0-255) gefüllt mit Nullen
canvas = np.zeros( (height, width, 3) , dtype=np.uint8)

# zeichne eine Linie auf die Leinwand von links nach rechts
canvas = cv2.line(canvas, (0, height//3), (width, height//3), color, thickness=3)

## DEIN CODE

imshow(canvas)<jupyter_output><empty_output><jupyter_text>Aufgabe 2:Mit Hilfe des vorherigen Notebooks:- lade ein Bild von Dir (oder ein Bild aus dem Internet) in deine Jupyter Notebook Umgebung  - lustige Bilder zum experimentieren findest du z.B.: hier: https://knowyourmeme.com/memes/facebomb/photos ;)- kopiere dazu die Datei(en) in den "data" Ordner, damit sie im Docker Container sichtbar sind  - dieser Pfad ist in den Docker Container gemountet  - innerhalb des docker Containers ist der Pfad dann unter /data/ ereichbar- Versuche nun ähnlich wie bei unserem Augen-Beispiel in dem Bild ein Gesicht bzw. Gesichter zu findenDazu musst du einen anderen Cascade Classifier verwenden (z.B. haarcascade_frontalface_default.xml). Ausserdem musst du darauf achten, dass das Gesicht möglichst gerade und frontal in die Kamera schaut. Evtl. musst duch auch mit den Parametern für scaleFactor und minNeighbors experimentieren, bis du ein gutes Ergebnis bekommst.Hinweis:Die Haar Cascade Classifier sind zwar sehr schnell - aber nicht besonders genau. Es ist zu erwarten, dass dein Detektor evtl. nicht gut funktioniert. In späteren Kapiteln lernen wir Methoden kennen, die zuverlässigere Ergebnisse liefern ...<jupyter_code># wenn man ein ! voran stellt führt Jupyter einen shell Befehl aus. Hier also ein ls -al im Docker Container für den /data/ Pfad
# das ist sehr praktisch - so kann man zum Beispiel auch einfach mit !wget Dateien aus dem Internet in den Container laden.
!ls -al /data/
cascade = cv2.CascadeClassifier(...) 
face_orig = cv2.imread(...)

## DEIN CODE<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.07186779400461184, 'fraction_numerical': 0.0207532667179093, 'mean_word_length': 5.011547344110855, 'pattern_counts': {'":': 0, '<': 13, '<?xml version=': 0, '>': 13, 'https://': 1, 'lorem ipsum': 0, 'www.': 0, 'xml': 1}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '3', 'dir': 'jupyter-structured-clean-dedup', 'id': '415132', 'license': 'MIT', 'n_tokens_mistral': 929, 'n_tokens_neox': 891, 'n_words': 333, 'path': 'notebooks/computer_vision/computer-vision-basics-aufgaben.ipynb', 'repo_name': 'dexX7/codecentric.AI-bootcamp', 'size': '2602'}