Stand 11.11.2020
Um mögliche störende Anfangsbedingungen eliminieren zu können, haben
wir den Versuchsaufbau wie in Abbildung 1 neu angeordnet. Zusätzlich
wurde die Linie mithilfe eines Tablets mit gleichbleibenden
Vorraussetzungen realisiert:
Abbildung 1: Neuer Versuchsaufbau
Des Weiteren haben wir, um möglich passende Kameraeinstellungen
zu finden, das Beispielprogramm der IDE für einen CameraWebServer
verwendet, da dort die Kameraeinstellungen in Realtime durch ein
Livebild evaluiert werden können. Dabei fiel auf, dass eine Auflösung von
640x480 Pixeln und die manuellen Kameraeinstellungen eine deutliche
verbesserung der Aufnahme liefern:
Abbildung 2: Grauwertbild als
Oberflächendiagramm, geringe Auflösung
Abbildung 3: Grauwertbild als
Oberflächendiagramm, höhere Auflösung
Abbildung 2
zeigt, dass die Ecken ähnlich tiefe Werte wie die Linie annehmen,
wobei durch die angepassten Einstellungen in Abbildung 3 deutliche
Verbesserungen erreicht werden. Der geringe Ausschlag des Graphen
an der Ecke entsteht aufgrund der Optik der Kamera.
Daraus haben wir uns für folgenden Ablauf des Programms
entschieden:
-Ein 640x480 Bild (Frame) wird aus dem
Framebuffer entommen und zwischengespeichert. -Bei 10x10 Pixeln
werden in einem neuen Pixel durch den Mittelwert zusammengefasst, es
entsteht ein neues Frame mit der Größe von 64x48 Pixeln. -Es
findet eine Filterung des Bildes mit anschließender Auswertung der
ersten und letzten Zeile des Bildes statt, um mit diesen zwei Zeilen
ein Vektor mit Winkel zu erzeugen. -Der Winkel und Vektor werden
in Variablen geschrieben und ausgegeben.
Hinweise zur
Filterung:
Um eine
Flankenerkennung mittels Grauwerten an einem digitalen Bild
durchzuführen sind drei Schritte notwendig:
1. Glättung der Eingangswerte.
2. Ein
Filter, der die gewünschten Effekte verstärkt.
3. Eine
Auswertung mittels Schwellenwert.
In
unserem Fall haben wir uns für einen geleitenden Mittelwert als
Glättung entschieden. Hierbei werden
unerwünschte Spitzen, die
durch Verschmutzung oder sonstige Fehler entstehen, abgedämpft
wie in Abb.4 zu erkennen.
Als Filterschaltung haben wir uns für eine numerische
Differentiation (Ableitung 1. Ordnung) entschieden,
um Kanten die einer steigenden Funktion entsprechen noch
deutlicher auswerten zu können. Ein Vorteil, der dabei entsteht,
ist dabei, dass die Steigende Kante das Maximum der Werte bildet und
die Fallende einen negativen Wert ausgibt und somit das Minimum
ist. Dies erleichtert die Auswertung erheblich.
Eine Ableitung der 2. Ordnung ist auch auf dem Bild zu sehen.
Hier wäre es möglich die Nullstellen in der Grafik auszuwerten.
Jedoch war
das Ergebnis der 1. Ableitung ausreichend und so konnte
Rechenzeit eingespart werden.
Abbildung 4
Informationstechnik Labor WiSe2020/2021 |