Laser Sensing Display for UI interfaces in the real world
Fork of skinGames_forktest by
classLaserSensingTrajectory.h@0:345b3bc7a0ea, 2012-03-28 (annotated)
- Committer:
- mbedalvaro
- Date:
- Wed Mar 28 14:40:01 2012 +0000
- Revision:
- 0:345b3bc7a0ea
- Child:
- 1:a4050fee11f7
This version (using rigid frame, base and child classes, etc) works, but the blob is strangely smaller. Need to check this.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mbedalvaro | 0:345b3bc7a0ea | 1 | #ifndef LSDTRAJECTORY_H |
mbedalvaro | 0:345b3bc7a0ea | 2 | #define LSDTRAJECTORY_H |
mbedalvaro | 0:345b3bc7a0ea | 3 | |
mbedalvaro | 0:345b3bc7a0ea | 4 | #include <vector> |
mbedalvaro | 0:345b3bc7a0ea | 5 | using namespace std; |
mbedalvaro | 0:345b3bc7a0ea | 6 | |
mbedalvaro | 0:345b3bc7a0ea | 7 | // CONTRAST RATIO to compute autoThreshold: |
mbedalvaro | 0:345b3bc7a0ea | 8 | #define MIN_CONTRAST_RATIO 1.3//2.4 |
mbedalvaro | 0:345b3bc7a0ea | 9 | #define THRESHOLD_FACTOR 0.5//0.75 // 2/3 or 1/2 are good values |
mbedalvaro | 0:345b3bc7a0ea | 10 | |
mbedalvaro | 0:345b3bc7a0ea | 11 | struct laserSensingPoint { |
mbedalvaro | 0:345b3bc7a0ea | 12 | // Position and color (after rendering) |
mbedalvaro | 0:345b3bc7a0ea | 13 | int x, y; // position of the point (after rendering - its integer, because it is in "laser projector pixels") |
mbedalvaro | 0:345b3bc7a0ea | 14 | char color; // laser color of the point (we will use the first three bits to set the RGB colors) |
mbedalvaro | 0:345b3bc7a0ea | 15 | // Detection: |
mbedalvaro | 0:345b3bc7a0ea | 16 | float intensity; // detected intensity |
mbedalvaro | 0:345b3bc7a0ea | 17 | int lightZone; // the thresholded light zone |
mbedalvaro | 0:345b3bc7a0ea | 18 | }; |
mbedalvaro | 0:345b3bc7a0ea | 19 | |
mbedalvaro | 0:345b3bc7a0ea | 20 | |
mbedalvaro | 0:345b3bc7a0ea | 21 | class LaserSensingTrajectory { |
mbedalvaro | 0:345b3bc7a0ea | 22 | |
mbedalvaro | 0:345b3bc7a0ea | 23 | public: |
mbedalvaro | 0:345b3bc7a0ea | 24 | |
mbedalvaro | 0:345b3bc7a0ea | 25 | LaserSensingTrajectory(); |
mbedalvaro | 0:345b3bc7a0ea | 26 | ~LaserSensingTrajectory(); |
mbedalvaro | 0:345b3bc7a0ea | 27 | |
mbedalvaro | 0:345b3bc7a0ea | 28 | // METHODS: |
mbedalvaro | 0:345b3bc7a0ea | 29 | void processSensedData(); |
mbedalvaro | 0:345b3bc7a0ea | 30 | |
mbedalvaro | 0:345b3bc7a0ea | 31 | // DATA: |
mbedalvaro | 0:345b3bc7a0ea | 32 | vector <laserSensingPoint> lsdTrajectory; |
mbedalvaro | 0:345b3bc7a0ea | 33 | char displayColor; |
mbedalvaro | 0:345b3bc7a0ea | 34 | |
mbedalvaro | 0:345b3bc7a0ea | 35 | // parameters for thresholding: |
mbedalvaro | 0:345b3bc7a0ea | 36 | float autoThreshold; |
mbedalvaro | 0:345b3bc7a0ea | 37 | |
mbedalvaro | 0:345b3bc7a0ea | 38 | // Statistics and tests: |
mbedalvaro | 0:345b3bc7a0ea | 39 | float maxI, minI; // Max and Min intensity |
mbedalvaro | 0:345b3bc7a0ea | 40 | bool lightTouched; // true if something went over the autoThreshold for the whole loop |
mbedalvaro | 0:345b3bc7a0ea | 41 | }; |
mbedalvaro | 0:345b3bc7a0ea | 42 | |
mbedalvaro | 0:345b3bc7a0ea | 43 | #endif |
mbedalvaro | 0:345b3bc7a0ea | 44 | |
mbedalvaro | 0:345b3bc7a0ea | 45 |