$search
00001 #ifndef _Aruco_board_h 00002 #define _Aruco_board_h 00003 #include <opencv/cv.h> 00004 #include <string> 00005 #include <vector> 00006 #include "marker.h" 00007 using namespace std; 00008 namespace aruco{ 00013 class BoardConfiguration 00014 { 00015 public: 00016 cv::Mat _markersId;// grid of marker ids. Represent the matrix of (integers) markers in the board 00017 int _markerSizePix, _markerDistancePix;//size in pixels of the marker side and the distance between markers 00018 00021 BoardConfiguration(); 00022 00025 BoardConfiguration(const BoardConfiguration &T); 00026 00029 void saveToFile(string sfile)throw (cv::Exception); 00032 void readFromFile(string sfile)throw (cv::Exception); 00033 00034 }; 00035 00038 class Board:public vector<Marker> 00039 { 00040 public: 00041 BoardConfiguration conf; 00042 //matrices of rotation and translation respect to the camera 00043 cv::Mat Rvec,Tvec; 00044 float markerSizeMeters; 00047 Board() 00048 { 00049 Rvec.create(3,1,CV_32FC1); 00050 Tvec.create(3,1,CV_32FC1); 00051 for (int i=0;i<3;i++) 00052 Tvec.at<float>(i,0)=Rvec.at<float>(i,0)=-999999; 00053 markerSizeMeters=-1; 00054 } 00055 00059 void glGetModelViewMatrix(double modelview_matrix[16])throw(cv::Exception); 00060 00064 static cv::Mat createBoardImage( cv::Size gridSize,int MarkerSize,int MarkerDistance,unsigned int FirstMarkerID, BoardConfiguration& TInfo ) throw (cv::Exception); 00065 00066 00067 }; 00068 } 00069 00070 #endif