
Dies ist die von Julian Mueller überarbeitete Bahnkantenregelung.
Diff: edge_func.h
- 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