Move border type constants and Moments class to core module
This commit is contained in:
@@ -121,6 +121,14 @@ CV_EXPORTS BinaryFunc getCopyMaskFunc(size_t esz);
|
||||
//! swaps two matrices
|
||||
CV_EXPORTS void swap(Mat& a, Mat& b);
|
||||
|
||||
//! 1D interpolation function: returns coordinate of the "donor" pixel for the specified location p.
|
||||
CV_EXPORTS_W int borderInterpolate(int p, int len, int borderType);
|
||||
|
||||
//! copies 2D array to a larger destination array with extrapolation of the outer part of src using the specified border mode
|
||||
CV_EXPORTS_W void copyMakeBorder(InputArray src, OutputArray dst,
|
||||
int top, int bottom, int left, int right,
|
||||
int borderType, const Scalar& value = Scalar() );
|
||||
|
||||
//! adds one matrix to another (dst = src1 + src2)
|
||||
CV_EXPORTS_W void add(InputArray src1, InputArray src2, OutputArray dst,
|
||||
InputArray mask = noArray(), int dtype = -1);
|
||||
@@ -179,6 +187,9 @@ CV_EXPORTS_W double norm(InputArray src1, int normType = NORM_L2, InputArray mas
|
||||
CV_EXPORTS_W double norm(InputArray src1, InputArray src2,
|
||||
int normType = NORM_L2, InputArray mask = noArray());
|
||||
|
||||
//! computes PSNR image/video quality metric
|
||||
CV_EXPORTS_W double PSNR(InputArray src1, InputArray src2);
|
||||
|
||||
//! computes norm of a sparse matrix
|
||||
CV_EXPORTS double norm( const SparseMat& src, int normType );
|
||||
|
||||
|
@@ -157,6 +157,20 @@ enum { DFT_INVERSE = 1,
|
||||
DCT_ROWS = DFT_ROWS
|
||||
};
|
||||
|
||||
//! Various border types, image boundaries are denoted with '|'
|
||||
enum {
|
||||
BORDER_CONSTANT = 0, // iiiiii|abcdefgh|iiiiiii with some specified 'i'
|
||||
BORDER_REPLICATE = 1, // aaaaaa|abcdefgh|hhhhhhh
|
||||
BORDER_REFLECT = 2, // fedcba|abcdefgh|hgfedcb
|
||||
BORDER_WRAP = 3, // cdefgh|abcdefgh|abcdefg
|
||||
BORDER_REFLECT_101 = 4, // gfedcb|abcdefgh|gfedcba
|
||||
BORDER_TRANSPARENT = 5, // uvwxyz|absdefgh|ijklmno
|
||||
|
||||
BORDER_REFLECT101 = BORDER_REFLECT_101,
|
||||
BORDER_DEFAULT = BORDER_REFLECT_101,
|
||||
BORDER_ISOLATED = 16 // do not look outside of ROI
|
||||
};
|
||||
|
||||
|
||||
|
||||
//////////////// static assert /////////////////
|
||||
|
@@ -667,6 +667,51 @@ public:
|
||||
|
||||
|
||||
|
||||
///////////////////////// raster image moments //////////////////////////
|
||||
|
||||
class CV_EXPORTS_W_MAP Moments
|
||||
{
|
||||
public:
|
||||
//! the default constructor
|
||||
Moments();
|
||||
//! the full constructor
|
||||
Moments(double m00, double m10, double m01, double m20, double m11,
|
||||
double m02, double m30, double m21, double m12, double m03 );
|
||||
////! the conversion from CvMoments
|
||||
//Moments( const CvMoments& moments );
|
||||
////! the conversion to CvMoments
|
||||
//operator CvMoments() const;
|
||||
|
||||
//! spatial moments
|
||||
CV_PROP_RW double m00, m10, m01, m20, m11, m02, m30, m21, m12, m03;
|
||||
//! central moments
|
||||
CV_PROP_RW double mu20, mu11, mu02, mu30, mu21, mu12, mu03;
|
||||
//! central normalized moments
|
||||
CV_PROP_RW double nu20, nu11, nu02, nu30, nu21, nu12, nu03;
|
||||
};
|
||||
|
||||
/*!
|
||||
traits
|
||||
*/
|
||||
template<> class DataType<Moments>
|
||||
{
|
||||
public:
|
||||
typedef Moments value_type;
|
||||
typedef double work_type;
|
||||
typedef double channel_type;
|
||||
|
||||
enum { generic_type = 0,
|
||||
depth = DataType<channel_type>::depth,
|
||||
channels = (int)(sizeof(value_type)/sizeof(channel_type)), // 24
|
||||
fmt = DataType<channel_type>::fmt + ((channels - 1) << 8),
|
||||
type = CV_MAKETYPE(depth, channels)
|
||||
};
|
||||
|
||||
typedef Vec<channel_type, channels> vec_type;
|
||||
};
|
||||
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
///////////////////////////// Implementation ////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
|
Reference in New Issue
Block a user