geometry.h 959 B

123456789101112131415161718192021222324252627282930
  1. #ifdef HAS_OPENCV3
  2. #include <opencv2/core.hpp> //Any OPENCV3 code
  3. #else
  4. #include <opencv2/core/core.hpp> //Any Opencv2 code
  5. #endif
  6. double dist(cv::Point, cv::Point);
  7. double inner_angle(cv::Point, cv::Point, cv::Point);
  8. cv::Point map_point(double, cv::Point, cv::Point);
  9. cv::Point unmap_point(double, cv::Point, cv::Point);
  10. cv::Vec<double,3> get_line(cv::Point, cv::Point);
  11. bool is_in_line(cv::Vec<double,3> line, cv::Point p);
  12. bool is_above_line(cv::Vec<double,3> line, cv::Point p);
  13. double line_value(cv::Vec<double,3>, cv::Point);
  14. cv::Point further_point_from_line(cv::Vec<double,3>, std::vector<cv::Point>);
  15. class CoordinateSystem
  16. {
  17. private:
  18. double theta;
  19. cv::Matx<double,2,2> R, Rt;
  20. cv::Point origin;
  21. void precompute();
  22. public:
  23. CoordinateSystem(cv::Point, cv::Point);
  24. CoordinateSystem(double angle, cv::Point origin_);
  25. cv::Point map(cv::Point p);
  26. cv::Point unmap(cv::Point p);
  27. };