Dies ist die von Julian Mueller überarbeitete Bahnkantenregelung.

Dependencies:   TextLCD mbed

Revision:
0:b72d86a7b005
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/edge_func.h	Tue May 31 03:06:27 2016 +0000
@@ -0,0 +1,76 @@
+/**
+*Funktionen zum Auslesen der Linienkamera und zur Detektion der Kante
+*
+*Headerdatei edge_func.h
+*
+*@version: 01.11.2015
+*@author: Gustav Grether
+*/
+#ifndef EDGE_FUNC_H
+#define EDGE_FUNC_H
+
+#include "mbed.h"
+#include "interface.h"
+#include<queue>
+
+/**
+ * Funktion initialisiert die Werte fuer Variablen
+ * muss vor der Verwendung der Kamera ausgefuehrt werden
+
+*/
+void sens_setup();
+/**
+ * Funktion erzeugt einen Puls auf dem ClockPin
+*/
+void clockPulse(); 
+
+/**
+ * Funktion erzeugt einen Puls auf dem SI- und auf dem ClockPin
+*/
+void siClkPulse();
+
+/**
+ * Funktion liest den Sensor aus
+ * berechnet den Mittelwert der Grauwerte aus mehreren (numMeas) Messungen
+ * speichert die Werte in meanVal
+ * der Wertebereich eines Pixels ist [0,1]
+ * kontrolliert ob eine Messung fehlerhaft ist (Fehlfunktion des Sensors)
+*/
+void read(); 
+
+/**
+ * Funktion glaettet die in meanVal gespeicherten Grauwerte mit einem Gaußfilter
+*/
+void gaussian_calc();
+
+/**
+ * Funktion berechnet den Gradienten der Gauss gefilterten Grauwerte
+*/
+void gradient_calc();
+
+/**
+ * Funktion fuehrt Non-Maxima-Supression aus
+ * quantisiert den Gradienten und berechnet lokale Maxima
+ * d.h. Pixel die als Kante in Frage kommen
+ * die anderen Pixel werden "unterdrueckt"
+*/
+void nonMaxSupr();//
+
+/**
+ * Funktion fuehrt Plausibilitaetspruefung fuer moegliche Kantenpixel aus
+*/
+void plausible();
+
+/**
+ * Funktion berechnet Kantenpixel
+ * waehlt Pixel mit minimalem Gradient aus den moeglichen Kantenpixeln
+*/
+void edgePx_calc();
+
+/**
+ * Funktion berechnet Position (Pixel) der Kante und gibt diese zurück
+ * @return Kantenpixel
+*/
+int edgePx_get();
+
+#endif
\ No newline at end of file