Advertisement
Guest User

Untitled

a guest
Jul 4th, 2015
195
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.58 KB | None | 0 0
  1. static std::array<int, 3> cross(const std::array<int, 3> &a,
  2. const std::array<int, 3> &b)
  3. {
  4. std::array<int, 3> result;
  5. result[0] = a[1] * b[2] - a[2] * b[1];
  6. result[1] = a[2] * b[0] - a[0] * b[2];
  7. result[2] = a[0] * b[1] - a[1] * b[0];
  8. return result;
  9. }
  10.  
  11. static double point_to_line_distance(const cv::Point &p, const cv::Vec4i &line)
  12. {
  13. std::array<int, 3> pa{ { line[0], line[1], 1 } };
  14. std::array<int, 3> pb{ { line[2], line[3], 1 } };
  15. std::array<int, 3> l = cross(pa, pb);
  16. return std::abs((p.x * l[0] + p.y * l[1] + l[2])) * 1.0 /
  17. std::sqrt(double(l[0] * l[0] + l[1] * l[1]));
  18. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement