From fb9bbf99c4e9372c1023ba4941042d584303ea7b Mon Sep 17 00:00:00 2001 From: Marc Rollins Date: Mon, 22 Sep 2014 10:58:11 -0700 Subject: [PATCH] Adding division operators to `Point_` class. Performs element-wise division. --- modules/core/include/opencv2/core/types.hpp | 48 +++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/modules/core/include/opencv2/core/types.hpp b/modules/core/include/opencv2/core/types.hpp index 69c838ae22..b55b0c83e6 100644 --- a/modules/core/include/opencv2/core/types.hpp +++ b/modules/core/include/opencv2/core/types.hpp @@ -994,6 +994,30 @@ Point_<_Tp>& operator *= (Point_<_Tp>& a, double b) return a; } +template static inline +Point_<_Tp>& operator /= (Point_<_Tp>& a, int b) +{ + a.x = saturate_cast<_Tp>(a.x / b); + a.y = saturate_cast<_Tp>(a.y / b); + return a; +} + +template static inline +Point_<_Tp>& operator /= (Point_<_Tp>& a, float b) +{ + a.x = saturate_cast<_Tp>(a.x / b); + a.y = saturate_cast<_Tp>(a.y / b); + return a; +} + +template static inline +Point_<_Tp>& operator /= (Point_<_Tp>& a, double b) +{ + a.x = saturate_cast<_Tp>(a.x / b); + a.y = saturate_cast<_Tp>(a.y / b); + return a; +} + template static inline double norm(const Point_<_Tp>& pt) { @@ -1080,6 +1104,30 @@ Point3_<_Tp> operator * (const Matx<_Tp, 3, 3>& a, const Point_<_Tp>& b) return Point3_<_Tp>(tmp.val[0], tmp.val[1], tmp.val[2]); } +template static inline +Point_<_Tp> operator / (const Point_<_Tp>& a, int b) +{ + Point_<_Tp> tmp(a); + tmp /= b; + return tmp; +} + +template static inline +Point_<_Tp> operator / (const Point_<_Tp>& a, float b) +{ + Point_<_Tp> tmp(a); + tmp /= b; + return tmp; +} + +template static inline +Point_<_Tp> operator / (const Point_<_Tp>& a, double b) +{ + Point_<_Tp> tmp(a); + tmp /= b; + return tmp; +} + //////////////////////////////// 3D Point ///////////////////////////////