commit df13db4fc33b034a2912519d6e5afc46ace554d8 Author: Orangerot Date: Mon Aug 5 16:59:57 2024 +0200 Initial Commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a136337 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*.pdf diff --git a/main.typ b/main.typ new file mode 100644 index 0000000..ee5bc46 --- /dev/null +++ b/main.typ @@ -0,0 +1,329 @@ +#set page( + header: [ + Bildverarbeitung + #h(1fr) Gero Beckmann + ] +) +#set heading(numbering: "1.1") +#show heading: it => [ + Aufgabe #counter(heading).display(): #it.body +] + += Allgemeine Fragen #h(1fr) (20 P) + ++ Farbvalenz ++ Metamer ++ Farbräume ++ Ursprungspunke + +Wie viele Dimensionen hat eine Farbvalent? Woher kommt die Repräsantation? +Was sind metamere Farbreize? +Welcher Farbraum eigent sich zur Farbabstandsmessung? + +*Abtasttheorem nach Shannon* +$f_max$ bandbegrenztes Signal aus einer Folge von äquidistanten Abtastwerten +exakt rekonstruiert werden kann, wenn es mit einer Frequenz von größer gleich +$2 dot f_max$ abgetastet wurde. + +== Lochkamera + +#grid( + columns: (1fr, 1fr), + [ + #emph([Vorteile]) + - unendliche Schärfetiefe/dünnes Loch (theoretisch) + ], + [ + #emph([Nachteile]) + - wenig Licht zum Sensor; lange Belichtung + - Loch nicht unentlich dünn $->$ Unschärfescheibchen + - Beugung an Blende + ] +) + + +#grid( +columns: 2, +[ +Abbildungsformel $1 / f = 1 / g + 1 / b$ + +Vergrößerung +$V = "Bildgröße" / "Objektivgröße" = − b / z_c = − b / g = − f / (g − f) = − 1 / (q / f − 1)$ +], +image("res/lense-001.png") +) + +*Chromatische Aberration*: unterschiedliche Wellenlängen werden unterschiedlich +gebrochen. +- Linsensystem aus zwei/drei Linsen $−>$ Brennpunkte der Wellenlängen stimmen überein +- Spiegeloptiken: Reflektionsgesetz gilt unabhängig der Wellenlänge +- Monochromatisches Licht + +Vor/Nachteil telezentrisches Objektiv + +*Photometrie* objektive Größen, Physikalisch + +*Radiometrie* subjektive Größen; sichtbares Licht + +Rezeptoren Auge +- L-Zapfen (Rot-Rezeptoren) +- M-Zapfen (Grün-Rezeptoren) +- S-Zapfen (Blau-Rezeptoren) +- Stäbchen (Licht) + +Warum keine Rot-Grün Valenz +Sonnesreize der Zapfen werden zu kombinierten Nergensignalen kombiniert +(Rot-Grün, Blau-Gelb verschmieren) +- R-G Chromanz +- Luminanz +- B-Y Chromanz + +*CMOS vs CCD* +2 Vorteile + 2 Nachteile +#table( + columns: (1fr, 1fr), + table.header([*CMOS*], [*CCD*]), + [ + Vorteile + #set list(marker: [+]) + - frei Addressierbar (schnelle Teilbilder) + - hoher Dynamikbereich + - geringer Energiebedarf + - geringe Herstellungskosten + - hohe Dichte (geringe Baugröße) + ], + [ + Vorteile + #set list(marker: [+]) + - lineare Charakteristik + - Sättigung + ], + [ + Nachteile + #set list(marker: [-]) + - Empfindlichkeitsunterschiede in Pixeln (kalibrierbar) + - Verstärkungsunterschiede in Pixeln (kalibrierbar) + - hoher Dunkelstrom + ], + [ + Nachteile + #set list(marker: [-]) + - *Blooming*: Überlaufen der Ladung in (vertikalen) Nachbarzellen + - *Smear*: Belichtung während des Verschieben der Ladung + ] +) +Dunkelstrom: falsches Bildsignal durch thermisches Rauschen; durch kühlen beheben + +Welche markante Merkmale zur Segmentierung? + +*Histogramm-Spreizung* + +#image("res/histogramm-001.jpg") + +Histogramm ausreichen, zeichnen + +$ +hat(P)_i = 1 / "MN" sum^(M-1)^(m=0) sum^(N-1)_(n=0) delta^(q_i)_(g_"mn"), +i=0,...,K-1 +"Kronecker-Delta: " delta^b_a := cases(1 "für" a = b, 0 "für" a != b) +$ + +Histogramm-Spreizung Formen + +$gamma(g) = (g - g_min) (q_(k-1) - q_0) / (g_max - g_min) + q_0 $ + +$gamma(g_min) = q_0, gamma(g_max) = q_(K-1)$ + +Nächste Nachbar Berechnen +Bilineaer Berechnen +Median Filter berechnen / erklären + +*Radon-Transformation* (finde geradenhafte Strukturen; Winkel $phi$ = x, Distanz u = y) + +#pad(bottom: 15pt, align(center,grid( + columns: 2, + rows: 120pt, + column-gutter: 40pt, + figure(image("res/hough-001.jpg"), caption: [Originalbild]), + figure(image("res/hough-002.jpg"), caption: [Hough-Transformation]) +))) + +$ +g(u, phi) = R{g(x)} := integral.double^inf_inf g(x) delta(x^T e_phi - u) dif x +" ,mit" phi in [0, pi), u in R, e_phi = vec(cos phi, sin phi) +$ + +Integrationsgerade $phi$-Gerade: +$delta(x^T e_phi - u) = cases(inf "für" x^T e_phi - u = 0, 0 "für" x^T e_phi - u != 0)$ +sorgt dafür. dass Bildwerte längt Geraden mit Parametern u (Ursprungtabstand) +und $phi$ (Wunkel) aufintegriert werden. + +Enthält $g(x)$ eine $delta$-Gerade $delta(v^T u_phi_0 - u_0)$, so zeigt $g(u, +phi)$ ein ausgeprägtes Maxtmum bei $phi = phi_0, u = u_0$ + +*Hough-Transformation* Radon-Transformation für Binärbilder + +Für jeden gesetzten Bildpunkt $g(x) = 1$ wird die Geradengleichung $x^T e_phi - u = 0$ +ausgewertet: \ $u = x^T e_phi = x cos phi + y sin phi$ + +#set box(inset: 4pt) + +#grid( + columns: 3 * (1fr,), + grid( + columns: 5, + box[ ], box[2], rect[1], rect[0], rect[0], + box[y], box[1], rect[0], rect[1], rect[0], + box[ ], box[0], rect[0], rect[0], rect[1], + box[ ], box[ ], box[0], box[1], box[2], + box[ ], box[ ], box[ ], box[x], box[ ], + ), + table( + columns: 5, + table.header([$x$ \\ $phi$], $0$, $pi / 6$, $pi / 3$, $pi / 2$), + $(2,0)^T$, $2$, $2$, $1$, $0$, + $(1,1)^T$, $1$, $1$, $1$, $1$, + $(0,2)^T$, $0$, $1$, $2$, $2$ + ), + grid( + columns: 6, + box[ ], box[3], rect[0], rect[0], rect[0], rect[0], + box[ ], box[2], rect[1], rect[1], rect[1], rect[1], + box[y], box[1], rect[1], rect[2], rect[2], rect[1], + box[ ], box[0], rect[0], rect[0], rect[0], rect[1], + box[ ], box[ ], box[0], box[$pi/6$], box[$pi/3$], box[$pi/2$], + box[ ], box[ ], box[ ], box[x], box[ ], box[ ] + ), +) + +Was in Schatten, was in Sonne + + +*Karhunen-Loeve-Transformation* \ +(reduziere Korrelation zwischen Kanälen zu einem mit viel Information) +- Schätzung der Kovarianzmatrix $C_"gg"$ der Farbwerte +- Lösung des Eigenwertproblems +- zeilenweise Anordnung der Eigenvektoren in absteigender Reihenfolge der + Eigenwerte $A$ +- Subtraktion des mittleren Farbwertes und Transformation $k = A(g - mu_g)$ + + +#image(height: 6cm, "res/morphologie-001.png") +Rand-Extraktion: $G without (G minus.circle S)$ + +#page( + header: none, + margin: (y: 15pt) +)[ += Bilder zuordnen #h(1fr) (20 P) +#grid( + columns: (1fr, 1fr), + column-gutter: 40pt, + table( + image("res/images-001.png"), + [Schwellenwert (Binarisierung)], + [$ cases(1 "für" g(x) > gamma, 0 "sonst") $] + ), + table( + image("res/images-002.png"), + [Invertierung], + [$ max(g(x)) - g(x)$] + ), + table( + image("res/images-003.png"), + [Betragsspektrum], + [$abs(integral.double g(x) e^(-j 2 x f^T x) dif x )$] + ), + table( + image("res/images-004.png"), + [Verrauschung (additiv, normalverteilt)], + [$ g(x) + e(x), e(x) ~ N(0, sigma^2)$] + ), + table( + image("res/images-005.png"), + [Radon-Transformation], + [$integral.double g(x) delta(x^T e_phi - u) dif x$] + ), + table( + image("res/images-006.png"), + [Verschärfung], + [$4 dot g(x) - 3 dot "TP"{g(x)}$] + ), + table( + image("res/images-007.png"), + [Laplacian-of-Gaussian], + [$-Delta("TP"{g(x)})$] + ), + table( + image("res/images-008.png"), + [homomorphe Filterung], + [$exp("HP"{ln(g(x))})$] + ), + table( + image("res/images-009.png"), + [Gradientenbetrag], + [$sqrt(((partial g(x))/(partial x))^2 + ((partial g(x))/(partial y))^2)$] + ), + table( + image("res/images-010.png"), + [Fensterung (mit Hann-Fenster)], + [$g(x) dot w_"Hann"(x)$] + ), + ) + ] + += Filterung #h(1fr) (10 P) + += Lichtschnittverfahren / Triangulation #h(1fr) (30 P) + +Wie muss Oberflöche beschaffen sein, damit Triangulaton berechnet werden kann? + +#grid( + columns: 2, + [ +Spiegelnde Oberfläche + Kein Licht gelangt auf den Sensor + +Teiltransparentes Objekt (Volumenstreuung) + Aufweitung des Lichtpunkts + Messunsicherheit steigt + +Abschattung des +Beobachtungsstrahls + Kein Licht gelangt auf den Sensor + +Mehrfachreflexion bei teilspiegelndem Objekt + Zusätzliche, falsche Messpunkte + ], + image(height: 7cm, "res/triangulation-001.jpg") +) + + +#grid( + columns: 2, + column-gutter: 1cm, + pad(top: .5cm)[ + +*Hellfeld*: Gerichtetes Licht, das (bei fehlerfreiem Objekt) direkt in die Kamera gelenkt wird + +*Dunkelfeld*: Gerichtetes Licht, das (bei fehlerfreiem Objekt) an der Kamera vorbei gelenkt wird + +*Rotkanal*: koaxiale Hellfeldbeleuchtung, liefert Transmission + +*Grünkanal*: streifende Beleuchtung in Dunkelfeldanordnung +macht streuende Partikel auf der Oberfläche sichtbar + +*Blaukanal*: Dunkelfeld, macht Kratzer, Fusseln und Blasensichtbar + +], + image( + height: 6cm, + "res/dunkelfeld-001.jpg" + ) +) + + + +Zeichne Lichtschnittverfahren + +Maßnahmen gegen Störlichtunterdrückung diff --git a/res/dunkelfeld-001.jpg b/res/dunkelfeld-001.jpg new file mode 100644 index 0000000..0bf33c6 Binary files /dev/null and b/res/dunkelfeld-001.jpg differ diff --git a/res/histogramm-001.jpg b/res/histogramm-001.jpg new file mode 100644 index 0000000..1f3ea04 Binary files /dev/null and b/res/histogramm-001.jpg differ diff --git a/res/hough-001.jpg b/res/hough-001.jpg new file mode 100644 index 0000000..6ee0c90 Binary files /dev/null and b/res/hough-001.jpg differ diff --git a/res/hough-002.jpg b/res/hough-002.jpg new file mode 100644 index 0000000..2d00caa Binary files /dev/null and b/res/hough-002.jpg differ diff --git a/res/images-000.jpg b/res/images-000.jpg new file mode 100644 index 0000000..9e86c73 Binary files /dev/null and b/res/images-000.jpg differ diff --git a/res/images-001.png b/res/images-001.png new file mode 100644 index 0000000..3530892 Binary files /dev/null and b/res/images-001.png differ diff --git a/res/images-002.png b/res/images-002.png new file mode 100644 index 0000000..2cca466 Binary files /dev/null and b/res/images-002.png differ diff --git a/res/images-003.png b/res/images-003.png new file mode 100644 index 0000000..611277a Binary files /dev/null and b/res/images-003.png differ diff --git a/res/images-004.png b/res/images-004.png new file mode 100644 index 0000000..277e80a Binary files /dev/null and b/res/images-004.png differ diff --git a/res/images-005.png b/res/images-005.png new file mode 100644 index 0000000..b600243 Binary files /dev/null and b/res/images-005.png differ diff --git a/res/images-006.png b/res/images-006.png new file mode 100644 index 0000000..ef7e418 Binary files /dev/null and b/res/images-006.png differ diff --git a/res/images-007.png b/res/images-007.png new file mode 100644 index 0000000..902301c Binary files /dev/null and b/res/images-007.png differ diff --git a/res/images-008.png b/res/images-008.png new file mode 100644 index 0000000..88910c5 Binary files /dev/null and b/res/images-008.png differ diff --git a/res/images-009.png b/res/images-009.png new file mode 100644 index 0000000..ec9cdf7 Binary files /dev/null and b/res/images-009.png differ diff --git a/res/images-010.png b/res/images-010.png new file mode 100644 index 0000000..3919552 Binary files /dev/null and b/res/images-010.png differ diff --git a/res/lense-001.png b/res/lense-001.png new file mode 100644 index 0000000..199a8ee Binary files /dev/null and b/res/lense-001.png differ diff --git a/res/morphologie-001.png b/res/morphologie-001.png new file mode 100644 index 0000000..6f70046 Binary files /dev/null and b/res/morphologie-001.png differ diff --git a/res/triangulation-001.jpg b/res/triangulation-001.jpg new file mode 100644 index 0000000..3e22cf0 Binary files /dev/null and b/res/triangulation-001.jpg differ