5 #include "../rosInterfaces/header/robotVisionInterface.h" 6 #include "../rosInterfaces/header/worldInterface.h" 7 #include "../helper/header/infosVision.h" 8 #include "../helper/header/logger.h" 10 #include <visp3/gui/vpDisplayX.h> 11 #include <visp3/gui/vpDisplayOpenCV.h> 12 #include <visp3/io/vpImageIo.h> 13 #include <visp3/vision/vpKeyPoint.h> 14 #include <visp3/mbt/vpMbGenericTracker.h> 20 #include <sensor_msgs/Image.h> 22 #include <opencv2/highgui/highgui.hpp> 23 #include <opencv2/imgcodecs.hpp> 24 #include <opencv2/imgproc.hpp> 27 #include "opencv2/features2d.hpp" 28 #include "opencv2/xfeatures2d.hpp" 30 #include <cmat/cmat.h> 34 const std::string configFileL =
"/home/tori/UWsim/Peg/src/peg/src/vision/data/camera_left.xml";
35 const std::string configFileR = configFileL;
36 const std::string caoModel =
"/home/tori/UWsim/Peg/src/peg/src/vision/data/blockHoleCilinder.cao";
37 const std::string configFileDetector =
"/home/tori/UWsim/Peg/src/peg/src/vision/data/detection-config-MONO.xml";
38 const std::string initFileClickLeft =
"/home/tori/UWsim/Peg/src/peg/src/vision/data/3DPointSquareFace4_left.init";
39 const std::string initFileClickRight =
"/home/tori/UWsim/Peg/src/peg/src/vision/data/3DPointSquareFace4_right.init";
40 const std::string initFileClickLeft_w2D =
"/home/tori/UWsim/Peg/src/peg/src/vision/data/3DPointSquareFace4_w2d_left.init";
41 const std::string initFileClickRight_w2D =
"/home/tori/UWsim/Peg/src/peg/src/vision/data/3DPointSquareFace4_w2d_right.init";
42 const std::string learnData =
"/home/tori/UWsim/Peg/src/peg/src/vision/data/blockHole_learning_data.bin";
43 const std::string transfcameraLtoR =
"/home/tori/UWsim/Peg/src/peg/src/vision/data/lTr.txt";
46 int objDetectionInit(vpImage<unsigned char> I, vpMbGenericTracker *tracker);
47 int objDetection(vpImage<unsigned char> I, vpMbGenericTracker *tracker,
48 vpKeyPoint *keypoint_detection, vpHomogeneousMatrix *cMo,
49 double *error,
double* elapsedTime);
50 int stereoTracking(vpImage<unsigned char> I_left, vpImage<unsigned char> I_right,
51 vpMbGenericTracker *tracker,
52 vpHomogeneousMatrix *cLeftTo, vpHomogeneousMatrix *cRightTo);
53 int initTracker(vpMbGenericTracker *tracker,
int nCameras, Eigen::Matrix4d cLTcR);
57 void drawSquares( cv::Mat& image,
const std::vector<std::vector<cv::Point> >& squares,
58 const char* wndname =
"Square Detection Demo");
59 void findSquares(
const cv::Mat& image, std::vector<std::vector<cv::Point> >& squares,
60 int thresh = 50,
int N = 11);
61 int orderAngles(std::vector<std::vector<cv::Point>> angles, std::vector<std::vector<cv::Point>> *orderedAngles);
62 int orderAngles(std::vector<cv::Point> angles, std::vector<cv::Point> *orderedAngles);
63 cv::Point getCenter(std::vector<cv::Point> points);
64 double angle( cv::Point pt1, cv::Point pt2, cv::Point pt0 );