updated OpenCV version to 2.2.9; added missing cv::convertPointsHomogeneous for backw...
authorVadim Pisarevsky <no@email>
Mon, 2 May 2011 22:20:22 +0000 (22:20 +0000)
committerVadim Pisarevsky <no@email>
Mon, 2 May 2011 22:20:22 +0000 (22:20 +0000)
CMakeLists.txt
docroot/opencv1/py/conf.py
modules/calib3d/include/opencv2/calib3d/calib3d.hpp
modules/calib3d/src/fundam.cpp
modules/core/include/opencv2/core/operations.hpp
modules/core/include/opencv2/core/version.hpp

index 13d95db..cee5611 100644 (file)
@@ -71,7 +71,7 @@ endif()
 # ----------------------------------------------------------------------------\r
 #  Current version number:\r
 # ----------------------------------------------------------------------------\r
-set(OPENCV_VERSION "2.2.0")\r
+set(OPENCV_VERSION "2.2.9")\r
 \r
 string(REGEX MATCHALL "[0-9]" OPENCV_VERSION_PARTS "${OPENCV_VERSION}")\r
 \r
index 4f9d644..0742d4a 100644 (file)
@@ -48,7 +48,7 @@ copyright = u'2010, authors'
 # The short X.Y version.
 version = '2.2'
 # The full version, including alpha/beta/rc tags.
-release = '2.2'
+release = '2.2.9'
 
 # The language for content autogenerated by Sphinx. Refer to documentation
 # for a list of supported languages.
index 4a394f0..dcd9832 100644 (file)
@@ -623,11 +623,14 @@ CV_EXPORTS_W Mat getOptimalNewCameraMatrix( const InputArray& cameraMatrix, cons
                                             CV_OUT Rect* validPixROI=0);
 
 //! converts point coordinates from normal pixel coordinates to homogeneous coordinates ((x,y)->(x,y,1))
-CV_EXPORTS void convertPointsToHomogeneous( const InputArray& src, OutputArray dst );
+CV_EXPORTS_W void convertPointsToHomogeneous( const InputArray& src, OutputArray dst );
     
 //! converts point coordinates from homogeneous to normal pixel coordinates ((x,y,z)->(x/z, y/z))
-CV_EXPORTS void convertPointsFromHomogeneous( const InputArray& src, OutputArray dst );
+CV_EXPORTS_W void convertPointsFromHomogeneous( const InputArray& src, OutputArray dst );
 
+//! for backward compatibility
+CV_EXPORTS void convertPointsHomogeneous( const InputArray& src, OutputArray dst );
+    
 //! the algorithm for finding fundamental matrix
 enum
 { 
index 98b3b66..198912d 100644 (file)
@@ -1148,4 +1148,15 @@ void cv::convertPointsToHomogeneous( const InputArray& _src, OutputArray _dst )
     cvConvertPointsHomogeneous(&c_src, &c_dst);
 }
 
+void cv::convertPointsHomogeneous( const InputArray& _src, OutputArray _dst )
+{
+    int stype = _src.type(), dtype = _dst.type();
+    CV_Assert( _dst.fixedType() );
+    
+    if( CV_MAT_CN(stype) > CV_MAT_CN(dtype) )
+        convertPointsFromHomogeneous(_src, _dst);
+    else
+        convertPointsToHomogeneous(_src, _dst);
+}
+
 /* End of file. */
index 0b52ba2..5ab8c88 100644 (file)
@@ -1131,27 +1131,30 @@ operator - (const Vec<_Tp, cn>& a, const Vec<_Tp, cn>& b)
     return c -= b;
 }
 
-template<typename _Tp> static inline
-Vec<_Tp, 2>& operator *= (Vec<_Tp, 2>& a, _Tp alpha)
+template<typename _Tp, int cn> static inline
+Vec<_Tp, cn>& operator *= (Vec<_Tp, cn>& a, _Tp alpha)
 {
-    a[0] *= alpha; a[1] *= alpha;
+    for( int i = 0; i < cn; i++ )
+        a[i] *= alpha;
     return a;
 }
 
-template<typename _Tp> static inline
-Vec<_Tp, 3>& operator *= (Vec<_Tp, 3>& a, _Tp alpha)
+template<int cn> static inline
+Vec<float, cn>& operator *= (Vec<float, cn>& a, double alpha)
 {
-    a[0] *= alpha; a[1] *= alpha; a[2] *= alpha;
+    for( int i = 0; i < cn; i++ )
+        a[i] *= (float)alpha;
     return a;
 }
 
-template<typename _Tp> static inline
-Vec<_Tp, 4>& operator *= (Vec<_Tp, 4>& a, _Tp alpha)
+template<int cn> static inline
+Vec<float, cn>& operator *= (Vec<float, cn>& a, int alpha)
 {
-    a[0] *= alpha; a[1] *= alpha; a[2] *= alpha; a[3] *= alpha;
+    for( int i = 0; i < cn; i++ )
+        a[i] *= (float)alpha;
     return a;
 }
-
+    
 template<typename _Tp, int cn> static inline Vec<_Tp, cn>
 operator * (const Vec<_Tp, cn>& a, _Tp alpha)
 {
@@ -1162,10 +1165,38 @@ operator * (const Vec<_Tp, cn>& a, _Tp alpha)
 template<typename _Tp, int cn> static inline Vec<_Tp, cn>
 operator * (_Tp alpha, const Vec<_Tp, cn>& a)
 {
-    return a * alpha;
+    Vec<_Tp, cn> c = a;
+    return c *= alpha;
 }
-    
 
+template<int cn> static inline Vec<float, cn>
+operator * (double alpha, const Vec<float, cn>& a)
+{
+    Vec<float, cn> c = a;
+    return c *= (float)alpha;
+}
+
+template<int cn> static inline Vec<float, cn>
+operator * (const Vec<float, cn>& a, double alpha)
+{
+    Vec<float, cn> c = a;
+    return c *= (float)alpha;
+}
+
+template<int cn> static inline Vec<float, cn>
+operator * (int alpha, const Vec<float, cn>& a)
+{
+    Vec<float, cn> c = a;
+    return c *= (float)alpha;
+}
+
+template<int cn> static inline Vec<float, cn>
+operator * (const Vec<float, cn>& a, int alpha)
+{
+    Vec<float, cn> c = a;
+    return c *= (float)alpha;
+}
+    
 template<typename _Tp> static inline Vec<_Tp, 4>
 operator * (const Vec<_Tp, 4>& a, const Vec<_Tp, 4>& b)
 {
index dfd3537..128bb45 100644 (file)
@@ -49,7 +49,7 @@
 
 #define CV_MAJOR_VERSION    2
 #define CV_MINOR_VERSION    2
-#define CV_SUBMINOR_VERSION 0
+#define CV_SUBMINOR_VERSION 9
 
 #define CVAUX_STR_EXP(__A)  #__A
 #define CVAUX_STR(__A)      CVAUX_STR_EXP(__A)