From 06491ce4dfe97a141a870b3afa702a6960287c05 Mon Sep 17 00:00:00 2001 From: Marcus Wichelmann Date: Tue, 28 Jul 2015 21:40:38 +0200 Subject: [PATCH] =?UTF-8?q?Funktionen=20zum=20Abrufen=20des=20letzen=20Abs?= =?UTF-8?q?tandswertes=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- LaserMeasurement.cpp | 18 +++++++++++++++--- LaserMeasurement.h | 6 ++++++ 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/LaserMeasurement.cpp b/LaserMeasurement.cpp index e80874b..b149b6d 100644 --- a/LaserMeasurement.cpp +++ b/LaserMeasurement.cpp @@ -36,19 +36,25 @@ int LaserMeasurement::GetDistanceFromImage(cv::Mat frame) // Laserposition abrufen float laserPosition = GetLaserPosition(frame, BAR_START, BAR_START + BAR_HEIGHT); - // LaserPosition merken - _lastLaserPosition = laserPosition; + // LaserPosition merken + _lastLaserPosition = laserPosition; // Wert auf Gültigkeit überprüfen if(laserPosition < 0) { + // Abstandswert merken + _lastDistance = -1; + // Spar dir die Berechnung, kommt sowieso Müll raus - return 0; + return -1; } // Distanz berechnen float distance = (-LASER_DISTANCE / tan(ALPHA)) / (2 * (CAMERA_WIDTH / 2 - laserPosition) / CAMERA_WIDTH * tan(GAMMA / 2) / tan(ALPHA) - 1); + // Abstandswert merken + _lastDistance = distance; + // Distanz zurückgeben return distance; } @@ -156,6 +162,12 @@ int LaserMeasurement::GetLastLaserPosition() return _lastLaserPosition; } +int LaserMeasurement::GetLastDistance() +{ + // Letzen Abstandswert zurückgeben + return _lastDistance; +} + int LaserMeasurement::GetBrightnessAvg(std::vector bar, int avgStart, int avgStop) { // Division durch 0 verhindern diff --git a/LaserMeasurement.h b/LaserMeasurement.h index 9195942..77dca18 100644 --- a/LaserMeasurement.h +++ b/LaserMeasurement.h @@ -73,6 +73,9 @@ namespace THOMAS // Die letzte Laserposition int _lastLaserPosition = -1; + // Der letzte Abstandswert + int _lastDistance = -1; + public: // Konstruktor LaserMeasurement(); @@ -83,5 +86,8 @@ namespace THOMAS // Gibt die letzte Laserposition zurück int GetLastLaserPosition(); + // Gibt den letzten Abstandswert zurück + int GetLastDistance(); + }; }