00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef __VISUAL_VECTOR_H__
00013 #define __VISUAL_VECTOR_H__
00014
00015 #include <Base/Sensor.h>
00016 #include <matrix/Matrix.h>
00017 #include "dsacssinterface.h"
00018 #include "cv.h"
00019 #include "cxcore.h"
00020 #include "highgui.h"
00021
00022 using namespace O_SESSAME;
00023
00024 class VisualVector : public Sensor
00025 {
00026 public:
00027
00028 VisualVector();
00029 VisualVector(bool debug);
00030 virtual ~VisualVector();
00031
00032
00033
00034
00035 Measurement GetMeasurement();
00036 Vector GetVectorMeasurement();
00037
00038 private:
00039 IplImage* WorkingImage;
00040 IplImage* RawImage;
00041 CvCapture* capture;
00042 bool Debug;
00043 int vertex[6];
00044 double centroid[2];
00045
00046 int FindVertex();
00047 int VertexSwitch();
00048
00049 long double RotationAngleFunc(int pixelwidth, int pixelheight);
00050 float TiltAngle1Func(long double RotAngle,int pixelheight, int pixelwidth,
00051 const int centzerotilt[], double runit,double hunit);
00052 float TiltAngle2Func(long double RotAngle,int pixelheight, int pixelwidth,
00053 const int centzerotilt[], double runit, double hunit);
00054 Vector vvangles;
00055 };
00056
00057 #endif
00058