Commit d02a0cab authored by Vadim Pisarevsky's avatar Vadim Pisarevsky

updated OpenCV version to 2.2.9; added missing cv::convertPointsHomogeneous for…

updated OpenCV version to 2.2.9; added missing cv::convertPointsHomogeneous for backward compatibility; fixed bug #952
parent b435ff0b
...@@ -71,7 +71,7 @@ endif() ...@@ -71,7 +71,7 @@ endif()
# ---------------------------------------------------------------------------- # ----------------------------------------------------------------------------
# Current version number: # Current version number:
# ---------------------------------------------------------------------------- # ----------------------------------------------------------------------------
set(OPENCV_VERSION "2.2.0") set(OPENCV_VERSION "2.2.9")
string(REGEX MATCHALL "[0-9]" OPENCV_VERSION_PARTS "${OPENCV_VERSION}") string(REGEX MATCHALL "[0-9]" OPENCV_VERSION_PARTS "${OPENCV_VERSION}")
......
...@@ -48,7 +48,7 @@ copyright = u'2010, authors' ...@@ -48,7 +48,7 @@ copyright = u'2010, authors'
# The short X.Y version. # The short X.Y version.
version = '2.2' version = '2.2'
# The full version, including alpha/beta/rc tags. # 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 # The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages. # for a list of supported languages.
......
...@@ -623,10 +623,13 @@ CV_EXPORTS_W Mat getOptimalNewCameraMatrix( const InputArray& cameraMatrix, cons ...@@ -623,10 +623,13 @@ CV_EXPORTS_W Mat getOptimalNewCameraMatrix( const InputArray& cameraMatrix, cons
CV_OUT Rect* validPixROI=0); CV_OUT Rect* validPixROI=0);
//! converts point coordinates from normal pixel coordinates to homogeneous coordinates ((x,y)->(x,y,1)) //! 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)) //! 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 //! the algorithm for finding fundamental matrix
enum enum
......
...@@ -1148,4 +1148,15 @@ void cv::convertPointsToHomogeneous( const InputArray& _src, OutputArray _dst ) ...@@ -1148,4 +1148,15 @@ void cv::convertPointsToHomogeneous( const InputArray& _src, OutputArray _dst )
cvConvertPointsHomogeneous(&c_src, &c_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. */ /* End of file. */
...@@ -1131,24 +1131,27 @@ operator - (const Vec<_Tp, cn>& a, const Vec<_Tp, cn>& b) ...@@ -1131,24 +1131,27 @@ operator - (const Vec<_Tp, cn>& a, const Vec<_Tp, cn>& b)
return c -= b; return c -= b;
} }
template<typename _Tp> static inline template<typename _Tp, int cn> static inline
Vec<_Tp, 2>& operator *= (Vec<_Tp, 2>& a, _Tp alpha) 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; return a;
} }
template<typename _Tp> static inline template<int cn> static inline
Vec<_Tp, 3>& operator *= (Vec<_Tp, 3>& a, _Tp alpha) 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; return a;
} }
template<typename _Tp> static inline template<int cn> static inline
Vec<_Tp, 4>& operator *= (Vec<_Tp, 4>& a, _Tp alpha) 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; return a;
} }
...@@ -1162,9 +1165,37 @@ operator * (const Vec<_Tp, cn>& a, _Tp alpha) ...@@ -1162,9 +1165,37 @@ operator * (const Vec<_Tp, cn>& a, _Tp alpha)
template<typename _Tp, int cn> static inline Vec<_Tp, cn> template<typename _Tp, int cn> static inline Vec<_Tp, cn>
operator * (_Tp alpha, const Vec<_Tp, cn>& a) 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> template<typename _Tp> static inline Vec<_Tp, 4>
operator * (const Vec<_Tp, 4>& a, const Vec<_Tp, 4>& b) operator * (const Vec<_Tp, 4>& a, const Vec<_Tp, 4>& b)
......
...@@ -49,7 +49,7 @@ ...@@ -49,7 +49,7 @@
#define CV_MAJOR_VERSION 2 #define CV_MAJOR_VERSION 2
#define CV_MINOR_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_EXP(__A) #__A
#define CVAUX_STR(__A) CVAUX_STR_EXP(__A) #define CVAUX_STR(__A) CVAUX_STR_EXP(__A)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment