Merge pull request #650 from taka-no-me:cvdef
This commit is contained in:
commit
f510b49cc2
@ -117,7 +117,7 @@ Finds the camera intrinsic and extrinsic parameters from several views of a cali
|
|||||||
|
|
||||||
.. ocv:function:: double calibrateCamera( InputArrayOfArrays objectPoints, InputArrayOfArrays imagePoints, Size imageSize, InputOutputArray cameraMatrix, InputOutputArray distCoeffs, OutputArrayOfArrays rvecs, OutputArrayOfArrays tvecs, int flags=0, TermCriteria criteria=TermCriteria( TermCriteria::COUNT+TermCriteria::EPS, 30, DBL_EPSILON) )
|
.. ocv:function:: double calibrateCamera( InputArrayOfArrays objectPoints, InputArrayOfArrays imagePoints, Size imageSize, InputOutputArray cameraMatrix, InputOutputArray distCoeffs, OutputArrayOfArrays rvecs, OutputArrayOfArrays tvecs, int flags=0, TermCriteria criteria=TermCriteria( TermCriteria::COUNT+TermCriteria::EPS, 30, DBL_EPSILON) )
|
||||||
|
|
||||||
.. ocv:pyfunction:: cv2.calibrateCamera(objectPoints, imagePoints, imageSize[, cameraMatrix[, distCoeffs[, rvecs[, tvecs[, flags[, criteria]]]]]]) -> retval, cameraMatrix, distCoeffs, rvecs, tvecs
|
.. ocv:pyfunction:: cv2.calibrateCamera(objectPoints, imagePoints, imageSize, cameraMatrix, distCoeffs[, rvecs[, tvecs[, flags[, criteria]]]]) -> retval, cameraMatrix, distCoeffs, rvecs, tvecs
|
||||||
|
|
||||||
.. ocv:cfunction:: double cvCalibrateCamera2( const CvMat* object_points, const CvMat* image_points, const CvMat* point_counts, CvSize image_size, CvMat* camera_matrix, CvMat* distortion_coeffs, CvMat* rotation_vectors=NULL, CvMat* translation_vectors=NULL, int flags=0, CvTermCriteria term_crit=cvTermCriteria( CV_TERMCRIT_ITER+CV_TERMCRIT_EPS,30,DBL_EPSILON) )
|
.. ocv:cfunction:: double cvCalibrateCamera2( const CvMat* object_points, const CvMat* image_points, const CvMat* point_counts, CvSize image_size, CvMat* camera_matrix, CvMat* distortion_coeffs, CvMat* rotation_vectors=NULL, CvMat* translation_vectors=NULL, int flags=0, CvTermCriteria term_crit=cvTermCriteria( CV_TERMCRIT_ITER+CV_TERMCRIT_EPS,30,DBL_EPSILON) )
|
||||||
|
|
||||||
@ -433,7 +433,7 @@ Renders the detected chessboard corners.
|
|||||||
|
|
||||||
.. ocv:function:: void drawChessboardCorners( InputOutputArray image, Size patternSize, InputArray corners, bool patternWasFound )
|
.. ocv:function:: void drawChessboardCorners( InputOutputArray image, Size patternSize, InputArray corners, bool patternWasFound )
|
||||||
|
|
||||||
.. ocv:pyfunction:: cv2.drawChessboardCorners(image, patternSize, corners, patternWasFound) -> None
|
.. ocv:pyfunction:: cv2.drawChessboardCorners(image, patternSize, corners, patternWasFound) -> image
|
||||||
|
|
||||||
.. ocv:cfunction:: void cvDrawChessboardCorners( CvArr* image, CvSize pattern_size, CvPoint2D32f* corners, int count, int pattern_was_found )
|
.. ocv:cfunction:: void cvDrawChessboardCorners( CvArr* image, CvSize pattern_size, CvPoint2D32f* corners, int count, int pattern_was_found )
|
||||||
.. ocv:pyoldfunction:: cv.DrawChessboardCorners(image, patternSize, corners, patternWasFound)-> None
|
.. ocv:pyoldfunction:: cv.DrawChessboardCorners(image, patternSize, corners, patternWasFound)-> None
|
||||||
@ -923,7 +923,7 @@ Filters off small noise blobs (speckles) in the disparity map
|
|||||||
|
|
||||||
.. ocv:function:: void filterSpeckles( InputOutputArray img, double newVal, int maxSpeckleSize, double maxDiff, InputOutputArray buf=noArray() )
|
.. ocv:function:: void filterSpeckles( InputOutputArray img, double newVal, int maxSpeckleSize, double maxDiff, InputOutputArray buf=noArray() )
|
||||||
|
|
||||||
.. ocv:pyfunction:: cv2.filterSpeckles(img, newVal, maxSpeckleSize, maxDiff[, buf]) -> None
|
.. ocv:pyfunction:: cv2.filterSpeckles(img, newVal, maxSpeckleSize, maxDiff[, buf]) -> img, buf
|
||||||
|
|
||||||
:param img: The input 16-bit signed disparity image
|
:param img: The input 16-bit signed disparity image
|
||||||
|
|
||||||
@ -1362,7 +1362,7 @@ Calibrates the stereo camera.
|
|||||||
|
|
||||||
.. ocv:function:: double stereoCalibrate( InputArrayOfArrays objectPoints, InputArrayOfArrays imagePoints1, InputArrayOfArrays imagePoints2, InputOutputArray cameraMatrix1, InputOutputArray distCoeffs1, InputOutputArray cameraMatrix2, InputOutputArray distCoeffs2, Size imageSize, OutputArray R, OutputArray T, OutputArray E, OutputArray F, TermCriteria criteria=TermCriteria(TermCriteria::COUNT+TermCriteria::EPS, 30, 1e-6), int flags=CALIB_FIX_INTRINSIC )
|
.. ocv:function:: double stereoCalibrate( InputArrayOfArrays objectPoints, InputArrayOfArrays imagePoints1, InputArrayOfArrays imagePoints2, InputOutputArray cameraMatrix1, InputOutputArray distCoeffs1, InputOutputArray cameraMatrix2, InputOutputArray distCoeffs2, Size imageSize, OutputArray R, OutputArray T, OutputArray E, OutputArray F, TermCriteria criteria=TermCriteria(TermCriteria::COUNT+TermCriteria::EPS, 30, 1e-6), int flags=CALIB_FIX_INTRINSIC )
|
||||||
|
|
||||||
.. ocv:pyfunction:: cv2.stereoCalibrate(objectPoints, imagePoints1, imagePoints2, imageSize[, cameraMatrix1[, distCoeffs1[, cameraMatrix2[, distCoeffs2[, R[, T[, E[, F[, criteria[, flags]]]]]]]]]]) -> retval, cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, R, T, E, F
|
.. ocv:pyfunction:: cv2.stereoCalibrate(objectPoints, imagePoints1, imagePoints2, cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, imageSize[, R[, T[, E[, F[, criteria[, flags]]]]]]) -> retval, cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, R, T, E, F
|
||||||
|
|
||||||
.. ocv:cfunction:: double cvStereoCalibrate( const CvMat* object_points, const CvMat* image_points1, const CvMat* image_points2, const CvMat* npoints, CvMat* camera_matrix1, CvMat* dist_coeffs1, CvMat* camera_matrix2, CvMat* dist_coeffs2, CvSize image_size, CvMat* R, CvMat* T, CvMat* E=0, CvMat* F=0, CvTermCriteria term_crit=cvTermCriteria( CV_TERMCRIT_ITER+CV_TERMCRIT_EPS,30,1e-6), int flags=CV_CALIB_FIX_INTRINSIC )
|
.. ocv:cfunction:: double cvStereoCalibrate( const CvMat* object_points, const CvMat* image_points1, const CvMat* image_points2, const CvMat* npoints, CvMat* camera_matrix1, CvMat* dist_coeffs1, CvMat* camera_matrix2, CvMat* dist_coeffs2, CvSize image_size, CvMat* R, CvMat* T, CvMat* E=0, CvMat* F=0, CvTermCriteria term_crit=cvTermCriteria( CV_TERMCRIT_ITER+CV_TERMCRIT_EPS,30,1e-6), int flags=CV_CALIB_FIX_INTRINSIC )
|
||||||
|
|
||||||
|
@ -550,8 +550,8 @@ enum
|
|||||||
CV_EXPORTS_W double calibrateCamera( InputArrayOfArrays objectPoints,
|
CV_EXPORTS_W double calibrateCamera( InputArrayOfArrays objectPoints,
|
||||||
InputArrayOfArrays imagePoints,
|
InputArrayOfArrays imagePoints,
|
||||||
Size imageSize,
|
Size imageSize,
|
||||||
CV_OUT InputOutputArray cameraMatrix,
|
InputOutputArray cameraMatrix,
|
||||||
CV_OUT InputOutputArray distCoeffs,
|
InputOutputArray distCoeffs,
|
||||||
OutputArrayOfArrays rvecs, OutputArrayOfArrays tvecs,
|
OutputArrayOfArrays rvecs, OutputArrayOfArrays tvecs,
|
||||||
int flags=0, TermCriteria criteria = TermCriteria(
|
int flags=0, TermCriteria criteria = TermCriteria(
|
||||||
TermCriteria::COUNT+TermCriteria::EPS, 30, DBL_EPSILON) );
|
TermCriteria::COUNT+TermCriteria::EPS, 30, DBL_EPSILON) );
|
||||||
@ -571,10 +571,10 @@ CV_EXPORTS_W void calibrationMatrixValues( InputArray cameraMatrix,
|
|||||||
CV_EXPORTS_W double stereoCalibrate( InputArrayOfArrays objectPoints,
|
CV_EXPORTS_W double stereoCalibrate( InputArrayOfArrays objectPoints,
|
||||||
InputArrayOfArrays imagePoints1,
|
InputArrayOfArrays imagePoints1,
|
||||||
InputArrayOfArrays imagePoints2,
|
InputArrayOfArrays imagePoints2,
|
||||||
CV_OUT InputOutputArray cameraMatrix1,
|
InputOutputArray cameraMatrix1,
|
||||||
CV_OUT InputOutputArray distCoeffs1,
|
InputOutputArray distCoeffs1,
|
||||||
CV_OUT InputOutputArray cameraMatrix2,
|
InputOutputArray cameraMatrix2,
|
||||||
CV_OUT InputOutputArray distCoeffs2,
|
InputOutputArray distCoeffs2,
|
||||||
Size imageSize, OutputArray R,
|
Size imageSize, OutputArray R,
|
||||||
OutputArray T, OutputArray E, OutputArray F,
|
OutputArray T, OutputArray E, OutputArray F,
|
||||||
TermCriteria criteria = TermCriteria(TermCriteria::COUNT+TermCriteria::EPS, 30, 1e-6),
|
TermCriteria criteria = TermCriteria(TermCriteria::COUNT+TermCriteria::EPS, 30, 1e-6),
|
||||||
|
@ -9,7 +9,7 @@ Finds centers of clusters and groups input samples around the clusters.
|
|||||||
|
|
||||||
.. ocv:function:: double kmeans( InputArray data, int K, InputOutputArray bestLabels, TermCriteria criteria, int attempts, int flags, OutputArray centers=noArray() )
|
.. ocv:function:: double kmeans( InputArray data, int K, InputOutputArray bestLabels, TermCriteria criteria, int attempts, int flags, OutputArray centers=noArray() )
|
||||||
|
|
||||||
.. ocv:pyfunction:: cv2.kmeans(data, K, criteria, attempts, flags[, bestLabels[, centers]]) -> retval, bestLabels, centers
|
.. ocv:pyfunction:: cv2.kmeans(data, K, bestLabels, criteria, attempts, flags[, centers]) -> retval, bestLabels, centers
|
||||||
|
|
||||||
.. ocv:cfunction:: int cvKMeans2( const CvArr* samples, int cluster_count, CvArr* labels, CvTermCriteria termcrit, int attempts=1, CvRNG* rng=0, int flags=0, CvArr* _centers=0, double* compactness=0 )
|
.. ocv:cfunction:: int cvKMeans2( const CvArr* samples, int cluster_count, CvArr* labels, CvTermCriteria termcrit, int attempts=1, CvRNG* rng=0, int flags=0, CvArr* _centers=0, double* compactness=0 )
|
||||||
|
|
||||||
|
@ -32,7 +32,7 @@ Draws a circle.
|
|||||||
|
|
||||||
.. ocv:function:: void circle(Mat& img, Point center, int radius, const Scalar& color, int thickness=1, int lineType=8, int shift=0)
|
.. ocv:function:: void circle(Mat& img, Point center, int radius, const Scalar& color, int thickness=1, int lineType=8, int shift=0)
|
||||||
|
|
||||||
.. ocv:pyfunction:: cv2.circle(img, center, radius, color[, thickness[, lineType[, shift]]]) -> None
|
.. ocv:pyfunction:: cv2.circle(img, center, radius, color[, thickness[, lineType[, shift]]]) -> img
|
||||||
|
|
||||||
.. ocv:cfunction:: void cvCircle( CvArr* img, CvPoint center, int radius, CvScalar color, int thickness=1, int line_type=8, int shift=0 )
|
.. ocv:cfunction:: void cvCircle( CvArr* img, CvPoint center, int radius, CvScalar color, int thickness=1, int line_type=8, int shift=0 )
|
||||||
|
|
||||||
@ -83,12 +83,13 @@ ellipse
|
|||||||
-----------
|
-----------
|
||||||
Draws a simple or thick elliptic arc or fills an ellipse sector.
|
Draws a simple or thick elliptic arc or fills an ellipse sector.
|
||||||
|
|
||||||
.. ocv:function:: void ellipse(Mat& img, Point center, Size axes, double angle, double startAngle, double endAngle, const Scalar& color, int thickness=1, int lineType=8, int shift=0)
|
.. ocv:function:: void ellipse(Mat& img, Point center, Size axes, double angle, double startAngle, double endAngle, const Scalar& color, int thickness=1, int lineType=8, int shift=0)
|
||||||
|
|
||||||
.. ocv:function:: void ellipse(Mat& img, const RotatedRect& box, const Scalar& color, int thickness=1, int lineType=8)
|
.. ocv:function:: void ellipse(Mat& img, const RotatedRect& box, const Scalar& color, int thickness=1, int lineType=8)
|
||||||
|
|
||||||
.. ocv:pyfunction:: cv2.ellipse(img, center, axes, angle, startAngle, endAngle, color[, thickness[, lineType[, shift]]]) -> None
|
.. ocv:pyfunction:: cv2.ellipse(img, center, axes, angle, startAngle, endAngle, color[, thickness[, lineType[, shift]]]) -> img
|
||||||
.. ocv:pyfunction:: cv2.ellipse(img, box, color[, thickness[, lineType]]) -> None
|
|
||||||
|
.. ocv:pyfunction:: cv2.ellipse(img, box, color[, thickness[, lineType]]) -> img
|
||||||
|
|
||||||
.. ocv:cfunction:: void cvEllipse( CvArr* img, CvPoint center, CvSize axes, double angle, double start_angle, double end_angle, CvScalar color, int thickness=1, int line_type=8, int shift=0 )
|
.. ocv:cfunction:: void cvEllipse( CvArr* img, CvPoint center, CvSize axes, double angle, double start_angle, double end_angle, CvScalar color, int thickness=1, int line_type=8, int shift=0 )
|
||||||
|
|
||||||
@ -163,7 +164,7 @@ Fills a convex polygon.
|
|||||||
|
|
||||||
.. ocv:function:: void fillConvexPoly(Mat& img, const Point* pts, int npts, const Scalar& color, int lineType=8, int shift=0)
|
.. ocv:function:: void fillConvexPoly(Mat& img, const Point* pts, int npts, const Scalar& color, int lineType=8, int shift=0)
|
||||||
|
|
||||||
.. ocv:pyfunction:: cv2.fillConvexPoly(img, points, color[, lineType[, shift]]) -> None
|
.. ocv:pyfunction:: cv2.fillConvexPoly(img, points, color[, lineType[, shift]]) -> img
|
||||||
|
|
||||||
.. ocv:cfunction:: void cvFillConvexPoly( CvArr* img, const CvPoint* pts, int npts, CvScalar color, int line_type=8, int shift=0 )
|
.. ocv:cfunction:: void cvFillConvexPoly( CvArr* img, const CvPoint* pts, int npts, CvScalar color, int line_type=8, int shift=0 )
|
||||||
|
|
||||||
@ -193,7 +194,7 @@ Fills the area bounded by one or more polygons.
|
|||||||
|
|
||||||
.. ocv:function:: void fillPoly(Mat& img, const Point** pts, const int* npts, int ncontours, const Scalar& color, int lineType=8, int shift=0, Point offset=Point() )
|
.. ocv:function:: void fillPoly(Mat& img, const Point** pts, const int* npts, int ncontours, const Scalar& color, int lineType=8, int shift=0, Point offset=Point() )
|
||||||
|
|
||||||
.. ocv:pyfunction:: cv2.fillPoly(img, pts, color[, lineType[, shift[, offset]]]) -> None
|
.. ocv:pyfunction:: cv2.fillPoly(img, pts, color[, lineType[, shift[, offset]]]) -> img
|
||||||
|
|
||||||
.. ocv:cfunction:: void cvFillPoly( CvArr* img, CvPoint** pts, const int* npts, int contours, CvScalar color, int line_type=8, int shift=0 )
|
.. ocv:cfunction:: void cvFillPoly( CvArr* img, CvPoint** pts, const int* npts, int contours, CvScalar color, int line_type=8, int shift=0 )
|
||||||
|
|
||||||
@ -331,7 +332,7 @@ Draws a line segment connecting two points.
|
|||||||
|
|
||||||
.. ocv:function:: void line(Mat& img, Point pt1, Point pt2, const Scalar& color, int thickness=1, int lineType=8, int shift=0)
|
.. ocv:function:: void line(Mat& img, Point pt1, Point pt2, const Scalar& color, int thickness=1, int lineType=8, int shift=0)
|
||||||
|
|
||||||
.. ocv:pyfunction:: cv2.line(img, pt1, pt2, color[, thickness[, lineType[, shift]]]) -> None
|
.. ocv:pyfunction:: cv2.line(img, pt1, pt2, color[, thickness[, lineType[, shift]]]) -> img
|
||||||
|
|
||||||
.. ocv:cfunction:: void cvLine( CvArr* img, CvPoint pt1, CvPoint pt2, CvScalar color, int thickness=1, int line_type=8, int shift=0 )
|
.. ocv:cfunction:: void cvLine( CvArr* img, CvPoint pt1, CvPoint pt2, CvScalar color, int thickness=1, int line_type=8, int shift=0 )
|
||||||
|
|
||||||
@ -421,7 +422,7 @@ Draws a simple, thick, or filled up-right rectangle.
|
|||||||
|
|
||||||
.. ocv:function:: void rectangle( Mat& img, Rect rec, const Scalar& color, int thickness=1, int lineType=8, int shift=0 )
|
.. ocv:function:: void rectangle( Mat& img, Rect rec, const Scalar& color, int thickness=1, int lineType=8, int shift=0 )
|
||||||
|
|
||||||
.. ocv:pyfunction:: cv2.rectangle(img, pt1, pt2, color[, thickness[, lineType[, shift]]]) -> None
|
.. ocv:pyfunction:: cv2.rectangle(img, pt1, pt2, color[, thickness[, lineType[, shift]]]) -> img
|
||||||
|
|
||||||
.. ocv:cfunction:: void cvRectangle( CvArr* img, CvPoint pt1, CvPoint pt2, CvScalar color, int thickness=1, int line_type=8, int shift=0 )
|
.. ocv:cfunction:: void cvRectangle( CvArr* img, CvPoint pt1, CvPoint pt2, CvScalar color, int thickness=1, int line_type=8, int shift=0 )
|
||||||
|
|
||||||
@ -455,7 +456,7 @@ Draws several polygonal curves.
|
|||||||
|
|
||||||
.. ocv:function:: void polylines( InputOutputArray img, InputArrayOfArrays pts, bool isClosed, const Scalar& color, int thickness=1, int lineType=8, int shift=0 )
|
.. ocv:function:: void polylines( InputOutputArray img, InputArrayOfArrays pts, bool isClosed, const Scalar& color, int thickness=1, int lineType=8, int shift=0 )
|
||||||
|
|
||||||
.. ocv:pyfunction:: cv2.polylines(img, pts, isClosed, color[, thickness[, lineType[, shift]]]) -> None
|
.. ocv:pyfunction:: cv2.polylines(img, pts, isClosed, color[, thickness[, lineType[, shift]]]) -> img
|
||||||
|
|
||||||
.. ocv:cfunction:: void cvPolyLine( CvArr* img, CvPoint** pts, const int* npts, int contours, int is_closed, CvScalar color, int thickness=1, int line_type=8, int shift=0 )
|
.. ocv:cfunction:: void cvPolyLine( CvArr* img, CvPoint** pts, const int* npts, int contours, int is_closed, CvScalar color, int thickness=1, int line_type=8, int shift=0 )
|
||||||
|
|
||||||
@ -488,7 +489,7 @@ Draws contours outlines or filled contours.
|
|||||||
|
|
||||||
.. ocv:function:: void drawContours( InputOutputArray image, InputArrayOfArrays contours, int contourIdx, const Scalar& color, int thickness=1, int lineType=8, InputArray hierarchy=noArray(), int maxLevel=INT_MAX, Point offset=Point() )
|
.. ocv:function:: void drawContours( InputOutputArray image, InputArrayOfArrays contours, int contourIdx, const Scalar& color, int thickness=1, int lineType=8, InputArray hierarchy=noArray(), int maxLevel=INT_MAX, Point offset=Point() )
|
||||||
|
|
||||||
.. ocv:pyfunction:: cv2.drawContours(image, contours, contourIdx, color[, thickness[, lineType[, hierarchy[, maxLevel[, offset]]]]]) -> None
|
.. ocv:pyfunction:: cv2.drawContours(image, contours, contourIdx, color[, thickness[, lineType[, hierarchy[, maxLevel[, offset]]]]]) -> image
|
||||||
|
|
||||||
.. ocv:cfunction:: void cvDrawContours( CvArr * img, CvSeq* contour, CvScalar external_color, CvScalar hole_color, int max_level, int thickness=1, int line_type=8, CvPoint offset=cvPoint(0,0) )
|
.. ocv:cfunction:: void cvDrawContours( CvArr * img, CvSeq* contour, CvScalar external_color, CvScalar hole_color, int max_level, int thickness=1, int line_type=8, CvPoint offset=cvPoint(0,0) )
|
||||||
|
|
||||||
|
@ -592,7 +592,7 @@ Copies the lower or the upper half of a square matrix to another half.
|
|||||||
|
|
||||||
.. ocv:function:: void completeSymm(InputOutputArray mtx, bool lowerToUpper=false)
|
.. ocv:function:: void completeSymm(InputOutputArray mtx, bool lowerToUpper=false)
|
||||||
|
|
||||||
.. ocv:pyfunction:: cv2.completeSymm(mtx[, lowerToUpper]) -> None
|
.. ocv:pyfunction:: cv2.completeSymm(mtx[, lowerToUpper]) -> mtx
|
||||||
|
|
||||||
:param mtx: input-output floating-point square matrix.
|
:param mtx: input-output floating-point square matrix.
|
||||||
|
|
||||||
@ -2299,7 +2299,9 @@ Performs Principal Component Analysis of the supplied dataset.
|
|||||||
|
|
||||||
.. ocv:function:: PCA& PCA::operator()(InputArray data, InputArray mean, int flags, double retainedVariance)
|
.. ocv:function:: PCA& PCA::operator()(InputArray data, InputArray mean, int flags, double retainedVariance)
|
||||||
|
|
||||||
.. ocv:pyfunction:: cv2.PCACompute(data[, mean[, eigenvectors[, maxComponents]]]) -> mean, eigenvectors
|
.. ocv:pyfunction:: cv2.PCACompute(data, mean[, eigenvectors[, maxComponents]]) -> mean, eigenvectors
|
||||||
|
|
||||||
|
.. ocv:pyfunction:: cv2.PCACompute(data, mean, retainedVariance[, eigenvectors]) -> mean, eigenvectors
|
||||||
|
|
||||||
:param data: input samples stored as the matrix rows or as the matrix columns.
|
:param data: input samples stored as the matrix rows or as the matrix columns.
|
||||||
|
|
||||||
@ -2670,7 +2672,7 @@ Generates a single uniformly-distributed random number or an array of random num
|
|||||||
|
|
||||||
.. ocv:function:: void randu( InputOutputArray dst, InputArray low, InputArray high )
|
.. ocv:function:: void randu( InputOutputArray dst, InputArray low, InputArray high )
|
||||||
|
|
||||||
.. ocv:pyfunction:: cv2.randu(dst, low, high) -> None
|
.. ocv:pyfunction:: cv2.randu(dst, low, high) -> dst
|
||||||
|
|
||||||
:param dst: output array of random numbers; the array must be pre-allocated.
|
:param dst: output array of random numbers; the array must be pre-allocated.
|
||||||
|
|
||||||
@ -2701,7 +2703,7 @@ Fills the array with normally distributed random numbers.
|
|||||||
|
|
||||||
.. ocv:function:: void randn( InputOutputArray dst, InputArray mean, InputArray stddev )
|
.. ocv:function:: void randn( InputOutputArray dst, InputArray mean, InputArray stddev )
|
||||||
|
|
||||||
.. ocv:pyfunction:: cv2.randn(dst, mean, stddev) -> None
|
.. ocv:pyfunction:: cv2.randn(dst, mean, stddev) -> dst
|
||||||
|
|
||||||
:param dst: output array of random numbers; the array must be pre-allocated and have 1 to 4 channels.
|
:param dst: output array of random numbers; the array must be pre-allocated and have 1 to 4 channels.
|
||||||
|
|
||||||
@ -2724,7 +2726,7 @@ Shuffles the array elements randomly.
|
|||||||
|
|
||||||
.. ocv:function:: void randShuffle( InputOutputArray dst, double iterFactor=1., RNG* rng=0 )
|
.. ocv:function:: void randShuffle( InputOutputArray dst, double iterFactor=1., RNG* rng=0 )
|
||||||
|
|
||||||
.. ocv:pyfunction:: cv2.randShuffle(dst[, iterFactor]) -> None
|
.. ocv:pyfunction:: cv2.randShuffle(dst[, iterFactor]) -> dst
|
||||||
|
|
||||||
:param dst: input/output numerical 1D array.
|
:param dst: input/output numerical 1D array.
|
||||||
|
|
||||||
@ -2864,7 +2866,7 @@ Initializes a scaled identity matrix.
|
|||||||
|
|
||||||
.. ocv:function:: void setIdentity( InputOutputArray mtx, const Scalar& s=Scalar(1) )
|
.. ocv:function:: void setIdentity( InputOutputArray mtx, const Scalar& s=Scalar(1) )
|
||||||
|
|
||||||
.. ocv:pyfunction:: cv2.setIdentity(mtx[, s]) -> None
|
.. ocv:pyfunction:: cv2.setIdentity(mtx[, s]) -> mtx
|
||||||
|
|
||||||
.. ocv:cfunction:: void cvSetIdentity(CvArr* mat, CvScalar value=cvRealScalar(1))
|
.. ocv:cfunction:: void cvSetIdentity(CvArr* mat, CvScalar value=cvRealScalar(1))
|
||||||
|
|
||||||
|
@ -46,6 +46,8 @@
|
|||||||
#ifndef __OPENCV_CORE_HPP__
|
#ifndef __OPENCV_CORE_HPP__
|
||||||
#define __OPENCV_CORE_HPP__
|
#define __OPENCV_CORE_HPP__
|
||||||
|
|
||||||
|
#include "opencv2/core/cvdef.h"
|
||||||
|
|
||||||
#include "opencv2/core/types_c.h"
|
#include "opencv2/core/types_c.h"
|
||||||
#include "opencv2/core/version.hpp"
|
#include "opencv2/core/version.hpp"
|
||||||
|
|
||||||
@ -69,11 +71,6 @@
|
|||||||
*/
|
*/
|
||||||
namespace cv {
|
namespace cv {
|
||||||
|
|
||||||
#undef abs
|
|
||||||
#undef min
|
|
||||||
#undef max
|
|
||||||
#undef Complex
|
|
||||||
|
|
||||||
template<typename _Tp> class CV_EXPORTS Size_;
|
template<typename _Tp> class CV_EXPORTS Size_;
|
||||||
template<typename _Tp> class CV_EXPORTS Point_;
|
template<typename _Tp> class CV_EXPORTS Point_;
|
||||||
template<typename _Tp> class CV_EXPORTS Rect_;
|
template<typename _Tp> class CV_EXPORTS Rect_;
|
||||||
@ -2426,10 +2423,10 @@ public:
|
|||||||
Mat mean; //!< mean value subtracted before the projection and added after the back projection
|
Mat mean; //!< mean value subtracted before the projection and added after the back projection
|
||||||
};
|
};
|
||||||
|
|
||||||
CV_EXPORTS_W void PCACompute(InputArray data, CV_OUT InputOutputArray mean,
|
CV_EXPORTS_W void PCACompute(InputArray data, InputOutputArray mean,
|
||||||
OutputArray eigenvectors, int maxComponents=0);
|
OutputArray eigenvectors, int maxComponents=0);
|
||||||
|
|
||||||
CV_EXPORTS_W void PCACompute(InputArray data, CV_OUT InputOutputArray mean,
|
CV_EXPORTS_W void PCACompute(InputArray data, InputOutputArray mean,
|
||||||
OutputArray eigenvectors, double retainedVariance);
|
OutputArray eigenvectors, double retainedVariance);
|
||||||
|
|
||||||
CV_EXPORTS_W void PCAProject(InputArray data, InputArray mean,
|
CV_EXPORTS_W void PCAProject(InputArray data, InputArray mean,
|
||||||
@ -2489,12 +2486,11 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
//! computes SVD of src
|
//! computes SVD of src
|
||||||
CV_EXPORTS_W void SVDecomp( InputArray src, CV_OUT OutputArray w,
|
CV_EXPORTS_W void SVDecomp( InputArray src, OutputArray w, OutputArray u, OutputArray vt, int flags=0 );
|
||||||
CV_OUT OutputArray u, CV_OUT OutputArray vt, int flags=0 );
|
|
||||||
|
|
||||||
//! performs back substitution for the previously computed SVD
|
//! performs back substitution for the previously computed SVD
|
||||||
CV_EXPORTS_W void SVBackSubst( InputArray w, InputArray u, InputArray vt,
|
CV_EXPORTS_W void SVBackSubst( InputArray w, InputArray u, InputArray vt,
|
||||||
InputArray rhs, CV_OUT OutputArray dst );
|
InputArray rhs, OutputArray dst );
|
||||||
|
|
||||||
//! computes Mahalanobis distance between two vectors: sqrt((v1-v2)'*icovar*(v1-v2)), where icovar is the inverse covariation matrix
|
//! computes Mahalanobis distance between two vectors: sqrt((v1-v2)'*icovar*(v1-v2)), where icovar is the inverse covariation matrix
|
||||||
CV_EXPORTS_W double Mahalanobis(InputArray v1, InputArray v2, InputArray icovar);
|
CV_EXPORTS_W double Mahalanobis(InputArray v1, InputArray v2, InputArray icovar);
|
||||||
@ -2525,7 +2521,7 @@ enum
|
|||||||
KMEANS_USE_INITIAL_LABELS=1 // Uses the user-provided labels for K-Means initialization
|
KMEANS_USE_INITIAL_LABELS=1 // Uses the user-provided labels for K-Means initialization
|
||||||
};
|
};
|
||||||
//! clusters the input data using k-Means algorithm
|
//! clusters the input data using k-Means algorithm
|
||||||
CV_EXPORTS_W double kmeans( InputArray data, int K, CV_OUT InputOutputArray bestLabels,
|
CV_EXPORTS_W double kmeans( InputArray data, int K, InputOutputArray bestLabels,
|
||||||
TermCriteria criteria, int attempts,
|
TermCriteria criteria, int attempts,
|
||||||
int flags, OutputArray centers=noArray() );
|
int flags, OutputArray centers=noArray() );
|
||||||
|
|
||||||
|
424
modules/core/include/opencv2/core/cvdef.h
Normal file
424
modules/core/include/opencv2/core/cvdef.h
Normal file
@ -0,0 +1,424 @@
|
|||||||
|
/*M///////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
|
||||||
|
//
|
||||||
|
// By downloading, copying, installing or using the software you agree to this license.
|
||||||
|
// If you do not agree to this license, do not download, install,
|
||||||
|
// copy or use the software.
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// License Agreement
|
||||||
|
// For Open Source Computer Vision Library
|
||||||
|
//
|
||||||
|
// Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
|
||||||
|
// Copyright (C) 2009, Willow Garage Inc., all rights reserved.
|
||||||
|
// Copyright (C) 2013, OpenCV Foundation, all rights reserved.
|
||||||
|
// Third party copyrights are property of their respective owners.
|
||||||
|
//
|
||||||
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
|
// are permitted provided that the following conditions are met:
|
||||||
|
//
|
||||||
|
// * Redistribution's of source code must retain the above copyright notice,
|
||||||
|
// this list of conditions and the following disclaimer.
|
||||||
|
//
|
||||||
|
// * Redistribution's in binary form must reproduce the above copyright notice,
|
||||||
|
// this list of conditions and the following disclaimer in the documentation
|
||||||
|
// and/or other materials provided with the distribution.
|
||||||
|
//
|
||||||
|
// * The name of the copyright holders may not be used to endorse or promote products
|
||||||
|
// derived from this software without specific prior written permission.
|
||||||
|
//
|
||||||
|
// This software is provided by the copyright holders and contributors "as is" and
|
||||||
|
// any express or implied warranties, including, but not limited to, the implied
|
||||||
|
// warranties of merchantability and fitness for a particular purpose are disclaimed.
|
||||||
|
// In no event shall the Intel Corporation or contributors be liable for any direct,
|
||||||
|
// indirect, incidental, special, exemplary, or consequential damages
|
||||||
|
// (including, but not limited to, procurement of substitute goods or services;
|
||||||
|
// loss of use, data, or profits; or business interruption) however caused
|
||||||
|
// and on any theory of liability, whether in contract, strict liability,
|
||||||
|
// or tort (including negligence or otherwise) arising in any way out of
|
||||||
|
// the use of this software, even if advised of the possibility of such damage.
|
||||||
|
//
|
||||||
|
//M*/
|
||||||
|
|
||||||
|
#ifndef __OPENCV_CORE_CVDEF_H__
|
||||||
|
#define __OPENCV_CORE_CVDEF_H__
|
||||||
|
|
||||||
|
#if !defined _CRT_SECURE_NO_DEPRECATE && defined _MSC_VER && _MSC_VER > 1300
|
||||||
|
# define _CRT_SECURE_NO_DEPRECATE /* to avoid multiple Visual Studio warnings */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// undef problematic defines sometimes defined by system headers (windows.h in particular)
|
||||||
|
#undef small
|
||||||
|
#undef min
|
||||||
|
#undef max
|
||||||
|
#undef abs
|
||||||
|
#undef Complex
|
||||||
|
|
||||||
|
#if defined __ICL
|
||||||
|
# define CV_ICC __ICL
|
||||||
|
#elif defined __ICC
|
||||||
|
# define CV_ICC __ICC
|
||||||
|
#elif defined __ECL
|
||||||
|
# define CV_ICC __ECL
|
||||||
|
#elif defined __ECC
|
||||||
|
# define CV_ICC __ECC
|
||||||
|
#elif defined __INTEL_COMPILER
|
||||||
|
# define CV_ICC __INTEL_COMPILER
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined CV_ICC && !defined CV_ENABLE_UNROLLED
|
||||||
|
# define CV_ENABLE_UNROLLED 0
|
||||||
|
#else
|
||||||
|
# define CV_ENABLE_UNROLLED 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (defined WIN32 || defined _WIN32 || defined WINCE) && defined CVAPI_EXPORTS
|
||||||
|
# define CV_EXPORTS __declspec(dllexport)
|
||||||
|
#else
|
||||||
|
# define CV_EXPORTS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef CV_INLINE
|
||||||
|
# if defined __cplusplus
|
||||||
|
# define CV_INLINE static inline
|
||||||
|
# elif (defined WIN32 || defined _WIN32 || defined WINCE) && !defined __GNUC__
|
||||||
|
# define CV_INLINE __inline
|
||||||
|
# else
|
||||||
|
# define CV_INLINE static
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef CV_EXTERN_C
|
||||||
|
# ifdef __cplusplus
|
||||||
|
# define CV_EXTERN_C extern "C"
|
||||||
|
# else
|
||||||
|
# define CV_EXTERN_C
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* intrinsics support */
|
||||||
|
#if defined __SSE2__ || defined _M_X64 || (defined _M_IX86_FP && _M_IX86_FP >= 2)
|
||||||
|
# include "emmintrin.h"
|
||||||
|
# define CV_SSE 1
|
||||||
|
# define CV_SSE2 1
|
||||||
|
# if defined __SSE3__ || (defined _MSC_VER && _MSC_VER >= 1500)
|
||||||
|
# include "pmmintrin.h"
|
||||||
|
# define CV_SSE3 1
|
||||||
|
# endif
|
||||||
|
# if defined __SSSE3__ || (defined _MSC_VER && _MSC_VER >= 1500)
|
||||||
|
# include "tmmintrin.h"
|
||||||
|
# define CV_SSSE3 1
|
||||||
|
# endif
|
||||||
|
# if defined __SSE4_1__ || (defined _MSC_VER && _MSC_VER >= 1500)
|
||||||
|
# include <smmintrin.h>
|
||||||
|
# define CV_SSE4_1 1
|
||||||
|
# endif
|
||||||
|
# if defined __SSE4_2__ || (defined _MSC_VER && _MSC_VER >= 1500)
|
||||||
|
# include <nmmintrin.h>
|
||||||
|
# define CV_SSE4_2 1
|
||||||
|
# endif
|
||||||
|
# if defined __AVX__ || (defined _MSC_FULL_VER && _MSC_FULL_VER >= 160040219)
|
||||||
|
// MS Visual Studio 2010 (2012?) has no macro pre-defined to identify the use of /arch:AVX
|
||||||
|
// See: http://connect.microsoft.com/VisualStudio/feedback/details/605858/arch-avx-should-define-a-predefined-macro-in-x64-and-set-a-unique-value-for-m-ix86-fp-in-win32
|
||||||
|
# include <immintrin.h>
|
||||||
|
# define CV_AVX 1
|
||||||
|
# if defined(_XCR_XFEATURE_ENABLED_MASK)
|
||||||
|
# define __xgetbv() _xgetbv(_XCR_XFEATURE_ENABLED_MASK)
|
||||||
|
# else
|
||||||
|
# define __xgetbv() 0
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __ARM_NEON__
|
||||||
|
# include <arm_neon.h>
|
||||||
|
# define CV_NEON 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef CV_SSE
|
||||||
|
# define CV_SSE 0
|
||||||
|
#endif
|
||||||
|
#ifndef CV_SSE2
|
||||||
|
# define CV_SSE2 0
|
||||||
|
#endif
|
||||||
|
#ifndef CV_SSE3
|
||||||
|
# define CV_SSE3 0
|
||||||
|
#endif
|
||||||
|
#ifndef CV_SSSE3
|
||||||
|
# define CV_SSSE3 0
|
||||||
|
#endif
|
||||||
|
#ifndef CV_SSE4_1
|
||||||
|
# define CV_SSE4_1 0
|
||||||
|
#endif
|
||||||
|
#ifndef CV_SSE4_2
|
||||||
|
# define CV_SSE4_2 0
|
||||||
|
#endif
|
||||||
|
#ifndef CV_AVX
|
||||||
|
# define CV_AVX 0
|
||||||
|
#endif
|
||||||
|
#ifndef CV_NEON
|
||||||
|
# define CV_NEON 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* primitive types */
|
||||||
|
/*
|
||||||
|
schar - signed 1 byte integer
|
||||||
|
uchar - unsigned 1 byte integer
|
||||||
|
short - signed 2 byte integer
|
||||||
|
ushort - unsigned 2 byte integer
|
||||||
|
int - signed 4 byte integer
|
||||||
|
uint - unsigned 4 byte integer
|
||||||
|
int64 - signed 8 byte integer
|
||||||
|
uint64 - unsigned 8 byte integer
|
||||||
|
*/
|
||||||
|
|
||||||
|
#if !defined _MSC_VER && !defined __BORLANDC__
|
||||||
|
# include <stdint.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
typedef signed char schar;
|
||||||
|
|
||||||
|
#ifndef __IPL_H__
|
||||||
|
typedef unsigned char uchar;
|
||||||
|
typedef unsigned short ushort;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined _MSC_VER || defined __BORLANDC__
|
||||||
|
typedef __int64 int64;
|
||||||
|
typedef unsigned __int64 uint64;
|
||||||
|
# define CV_BIG_INT(n) n##I64
|
||||||
|
# define CV_BIG_UINT(n) n##UI64
|
||||||
|
#else
|
||||||
|
typedef int64_t int64;
|
||||||
|
typedef uint64_t uint64;
|
||||||
|
# define CV_BIG_INT(n) n##LL
|
||||||
|
# define CV_BIG_UINT(n) n##ULL
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* special informative macros for wrapper generators */
|
||||||
|
#define CV_EXPORTS_W CV_EXPORTS
|
||||||
|
#define CV_EXPORTS_W_SIMPLE CV_EXPORTS
|
||||||
|
#define CV_EXPORTS_AS(synonym) CV_EXPORTS
|
||||||
|
#define CV_EXPORTS_W_MAP CV_EXPORTS
|
||||||
|
#define CV_IN_OUT
|
||||||
|
#define CV_OUT
|
||||||
|
#define CV_PROP
|
||||||
|
#define CV_PROP_RW
|
||||||
|
#define CV_WRAP
|
||||||
|
#define CV_WRAP_AS(synonym)
|
||||||
|
|
||||||
|
/* fundamental constants */
|
||||||
|
#define CV_PI 3.1415926535897932384626433832795
|
||||||
|
#define CV_LOG2 0.69314718055994530941723212145818
|
||||||
|
|
||||||
|
/****************************************************************************************\
|
||||||
|
* Matrix type (Mat) *
|
||||||
|
\****************************************************************************************/
|
||||||
|
|
||||||
|
#define CV_CN_MAX 512
|
||||||
|
#define CV_CN_SHIFT 3
|
||||||
|
#define CV_DEPTH_MAX (1 << CV_CN_SHIFT)
|
||||||
|
|
||||||
|
#define CV_8U 0
|
||||||
|
#define CV_8S 1
|
||||||
|
#define CV_16U 2
|
||||||
|
#define CV_16S 3
|
||||||
|
#define CV_32S 4
|
||||||
|
#define CV_32F 5
|
||||||
|
#define CV_64F 6
|
||||||
|
#define CV_USRTYPE1 7
|
||||||
|
|
||||||
|
#define CV_MAT_DEPTH_MASK (CV_DEPTH_MAX - 1)
|
||||||
|
#define CV_MAT_DEPTH(flags) ((flags) & CV_MAT_DEPTH_MASK)
|
||||||
|
|
||||||
|
#define CV_MAKETYPE(depth,cn) (CV_MAT_DEPTH(depth) + (((cn)-1) << CV_CN_SHIFT))
|
||||||
|
#define CV_MAKE_TYPE CV_MAKETYPE
|
||||||
|
|
||||||
|
#define CV_8UC1 CV_MAKETYPE(CV_8U,1)
|
||||||
|
#define CV_8UC2 CV_MAKETYPE(CV_8U,2)
|
||||||
|
#define CV_8UC3 CV_MAKETYPE(CV_8U,3)
|
||||||
|
#define CV_8UC4 CV_MAKETYPE(CV_8U,4)
|
||||||
|
#define CV_8UC(n) CV_MAKETYPE(CV_8U,(n))
|
||||||
|
|
||||||
|
#define CV_8SC1 CV_MAKETYPE(CV_8S,1)
|
||||||
|
#define CV_8SC2 CV_MAKETYPE(CV_8S,2)
|
||||||
|
#define CV_8SC3 CV_MAKETYPE(CV_8S,3)
|
||||||
|
#define CV_8SC4 CV_MAKETYPE(CV_8S,4)
|
||||||
|
#define CV_8SC(n) CV_MAKETYPE(CV_8S,(n))
|
||||||
|
|
||||||
|
#define CV_16UC1 CV_MAKETYPE(CV_16U,1)
|
||||||
|
#define CV_16UC2 CV_MAKETYPE(CV_16U,2)
|
||||||
|
#define CV_16UC3 CV_MAKETYPE(CV_16U,3)
|
||||||
|
#define CV_16UC4 CV_MAKETYPE(CV_16U,4)
|
||||||
|
#define CV_16UC(n) CV_MAKETYPE(CV_16U,(n))
|
||||||
|
|
||||||
|
#define CV_16SC1 CV_MAKETYPE(CV_16S,1)
|
||||||
|
#define CV_16SC2 CV_MAKETYPE(CV_16S,2)
|
||||||
|
#define CV_16SC3 CV_MAKETYPE(CV_16S,3)
|
||||||
|
#define CV_16SC4 CV_MAKETYPE(CV_16S,4)
|
||||||
|
#define CV_16SC(n) CV_MAKETYPE(CV_16S,(n))
|
||||||
|
|
||||||
|
#define CV_32SC1 CV_MAKETYPE(CV_32S,1)
|
||||||
|
#define CV_32SC2 CV_MAKETYPE(CV_32S,2)
|
||||||
|
#define CV_32SC3 CV_MAKETYPE(CV_32S,3)
|
||||||
|
#define CV_32SC4 CV_MAKETYPE(CV_32S,4)
|
||||||
|
#define CV_32SC(n) CV_MAKETYPE(CV_32S,(n))
|
||||||
|
|
||||||
|
#define CV_32FC1 CV_MAKETYPE(CV_32F,1)
|
||||||
|
#define CV_32FC2 CV_MAKETYPE(CV_32F,2)
|
||||||
|
#define CV_32FC3 CV_MAKETYPE(CV_32F,3)
|
||||||
|
#define CV_32FC4 CV_MAKETYPE(CV_32F,4)
|
||||||
|
#define CV_32FC(n) CV_MAKETYPE(CV_32F,(n))
|
||||||
|
|
||||||
|
#define CV_64FC1 CV_MAKETYPE(CV_64F,1)
|
||||||
|
#define CV_64FC2 CV_MAKETYPE(CV_64F,2)
|
||||||
|
#define CV_64FC3 CV_MAKETYPE(CV_64F,3)
|
||||||
|
#define CV_64FC4 CV_MAKETYPE(CV_64F,4)
|
||||||
|
#define CV_64FC(n) CV_MAKETYPE(CV_64F,(n))
|
||||||
|
|
||||||
|
#define CV_MAT_CN_MASK ((CV_CN_MAX - 1) << CV_CN_SHIFT)
|
||||||
|
#define CV_MAT_CN(flags) ((((flags) & CV_MAT_CN_MASK) >> CV_CN_SHIFT) + 1)
|
||||||
|
#define CV_MAT_TYPE_MASK (CV_DEPTH_MAX*CV_CN_MAX - 1)
|
||||||
|
#define CV_MAT_TYPE(flags) ((flags) & CV_MAT_TYPE_MASK)
|
||||||
|
#define CV_MAT_CONT_FLAG_SHIFT 14
|
||||||
|
#define CV_MAT_CONT_FLAG (1 << CV_MAT_CONT_FLAG_SHIFT)
|
||||||
|
#define CV_IS_MAT_CONT(flags) ((flags) & CV_MAT_CONT_FLAG)
|
||||||
|
#define CV_IS_CONT_MAT CV_IS_MAT_CONT
|
||||||
|
#define CV_SUBMAT_FLAG_SHIFT 15
|
||||||
|
#define CV_SUBMAT_FLAG (1 << CV_SUBMAT_FLAG_SHIFT)
|
||||||
|
#define CV_IS_SUBMAT(flags) ((flags) & CV_MAT_SUBMAT_FLAG)
|
||||||
|
|
||||||
|
/* Size of each channel item,
|
||||||
|
0x124489 = 1000 0100 0100 0010 0010 0001 0001 ~ array of sizeof(arr_type_elem) */
|
||||||
|
#define CV_ELEM_SIZE1(type) \
|
||||||
|
((((sizeof(size_t)<<28)|0x8442211) >> CV_MAT_DEPTH(type)*4) & 15)
|
||||||
|
|
||||||
|
/* 0x3a50 = 11 10 10 01 01 00 00 ~ array of log2(sizeof(arr_type_elem)) */
|
||||||
|
#define CV_ELEM_SIZE(type) \
|
||||||
|
(CV_MAT_CN(type) << ((((sizeof(size_t)/4+1)*16384|0x3a50) >> CV_MAT_DEPTH(type)*2) & 3))
|
||||||
|
|
||||||
|
|
||||||
|
/****************************************************************************************\
|
||||||
|
* fast math *
|
||||||
|
\****************************************************************************************/
|
||||||
|
|
||||||
|
#if defined __BORLANDC__
|
||||||
|
# include <fastmath.h>
|
||||||
|
#else
|
||||||
|
# include <math.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_TEGRA_OPTIMIZATION
|
||||||
|
# include "tegra_round.hpp"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
CV_INLINE int cvRound( double value )
|
||||||
|
{
|
||||||
|
#if (defined _MSC_VER && defined _M_X64) || (defined __GNUC__ && defined __x86_64__ && defined __SSE2__ && !defined __APPLE__)
|
||||||
|
__m128d t = _mm_set_sd( value );
|
||||||
|
return _mm_cvtsd_si32(t);
|
||||||
|
#elif defined _MSC_VER && defined _M_IX86
|
||||||
|
int t;
|
||||||
|
__asm
|
||||||
|
{
|
||||||
|
fld value;
|
||||||
|
fistp t;
|
||||||
|
}
|
||||||
|
return t;
|
||||||
|
#elif defined HAVE_LRINT || defined CV_ICC || defined __GNUC__
|
||||||
|
# ifdef HAVE_TEGRA_OPTIMIZATION
|
||||||
|
TEGRA_ROUND(value);
|
||||||
|
# else
|
||||||
|
return (int)lrint(value);
|
||||||
|
# endif
|
||||||
|
#else
|
||||||
|
// while this is not IEEE754-compliant rounding, it's usually a good enough approximation
|
||||||
|
return (int)(value + (value >= 0 ? 0.5 : -0.5));
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
CV_INLINE int cvFloor( double value )
|
||||||
|
{
|
||||||
|
#if defined _MSC_VER && defined _M_X64 || (defined __GNUC__ && defined __SSE2__ && !defined __APPLE__)
|
||||||
|
__m128d t = _mm_set_sd( value );
|
||||||
|
int i = _mm_cvtsd_si32(t);
|
||||||
|
return i - _mm_movemask_pd(_mm_cmplt_sd(t, _mm_cvtsi32_sd(t,i)));
|
||||||
|
#elif defined __GNUC__
|
||||||
|
int i = (int)value;
|
||||||
|
return i - (i > value);
|
||||||
|
#else
|
||||||
|
int i = cvRound(value);
|
||||||
|
float diff = (float)(value - i);
|
||||||
|
return i - (diff < 0);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
CV_INLINE int cvCeil( double value )
|
||||||
|
{
|
||||||
|
#if defined _MSC_VER && defined _M_X64 || (defined __GNUC__ && defined __SSE2__&& !defined __APPLE__)
|
||||||
|
__m128d t = _mm_set_sd( value );
|
||||||
|
int i = _mm_cvtsd_si32(t);
|
||||||
|
return i + _mm_movemask_pd(_mm_cmplt_sd(_mm_cvtsi32_sd(t,i), t));
|
||||||
|
#elif defined __GNUC__
|
||||||
|
int i = (int)value;
|
||||||
|
return i + (i < value);
|
||||||
|
#else
|
||||||
|
int i = cvRound(value);
|
||||||
|
float diff = (float)(i - value);
|
||||||
|
return i + (diff < 0);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
CV_INLINE int cvIsNaN( double value )
|
||||||
|
{
|
||||||
|
union { uint64 u; double f; } ieee754;
|
||||||
|
ieee754.f = value;
|
||||||
|
return ((unsigned)(ieee754.u >> 32) & 0x7fffffff) +
|
||||||
|
((unsigned)ieee754.u != 0) > 0x7ff00000;
|
||||||
|
}
|
||||||
|
|
||||||
|
CV_INLINE int cvIsInf( double value )
|
||||||
|
{
|
||||||
|
union { uint64 u; double f; } ieee754;
|
||||||
|
ieee754.f = value;
|
||||||
|
return ((unsigned)(ieee754.u >> 32) & 0x7fffffff) == 0x7ff00000 &&
|
||||||
|
(unsigned)ieee754.u == 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************************\
|
||||||
|
* exchange-add operation for atomic operations on reference counters *
|
||||||
|
\****************************************************************************************/
|
||||||
|
|
||||||
|
#if defined __INTEL_COMPILER && !(defined WIN32 || defined _WIN32)
|
||||||
|
// atomic increment on the linux version of the Intel(tm) compiler
|
||||||
|
# define CV_XADD(addr, delta) (int)_InterlockedExchangeAdd(const_cast<void*>(reinterpret_cast<volatile void*>(addr)), delta)
|
||||||
|
#elif defined __GNUC__
|
||||||
|
# if defined __clang__ && __clang_major__ >= 3 && !defined __ANDROID__
|
||||||
|
# ifdef __ATOMIC_ACQ_REL
|
||||||
|
# define CV_XADD(addr, delta) __c11_atomic_fetch_add((_Atomic(int)*)(addr), delta, __ATOMIC_ACQ_REL)
|
||||||
|
# else
|
||||||
|
# define CV_XADD(addr, delta) __atomic_fetch_add((_Atomic(int)*)(addr), delta, 4)
|
||||||
|
# endif
|
||||||
|
# else
|
||||||
|
# ifdef __ATOMIC_ACQ_REL
|
||||||
|
// version for gcc >= 4.7
|
||||||
|
# define CV_XADD(addr, delta) __atomic_fetch_add(addr, delta, __ATOMIC_ACQ_REL)
|
||||||
|
# else
|
||||||
|
# define CV_XADD(addr, delta) __sync_fetch_and_add(addr, delta)
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
#elif (defined WIN32 || defined _WIN32 || defined WINCE) && (!defined RC_INVOKED)
|
||||||
|
# if !defined(_M_AMD64) && !defined(_M_IA64) && !defined(_M_ARM)
|
||||||
|
CV_EXTERN_C __declspec(dllimport) long __stdcall InterlockedExchangeAdd(long volatile *Addend, long Value);
|
||||||
|
# define CV_XADD(addr, delta) (int)InterlockedExchangeAdd((long volatile*)addr, delta)
|
||||||
|
# else
|
||||||
|
CV_EXTERN_C long _InterlockedExchangeAdd (long volatile *Addend, long Value);
|
||||||
|
# pragma intrinsic(_InterlockedExchangeAdd)
|
||||||
|
# define CV_XADD(addr, delta) (int)_InterlockedExchangeAdd((long volatile*)addr, delta)
|
||||||
|
# endif
|
||||||
|
#else
|
||||||
|
CV_INLINE CV_XADD(int* addr, int delta) { int tmp = *addr; *addr += delta; return tmp; }
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // __OPENCV_CORE_CVDEF_H__
|
@ -51,40 +51,6 @@
|
|||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
|
||||||
/////// exchange-add operation for atomic operations on reference counters ///////
|
|
||||||
#if defined __INTEL_COMPILER && !(defined WIN32 || defined _WIN32)
|
|
||||||
// atomic increment on the linux version of the Intel(tm) compiler
|
|
||||||
#define CV_XADD(addr, delta) (int)_InterlockedExchangeAdd(const_cast<void*>(reinterpret_cast<volatile void*>(addr)), delta)
|
|
||||||
#elif defined __GNUC__
|
|
||||||
#if defined __clang__ && __clang_major__ >= 3 && !defined __ANDROID__
|
|
||||||
#ifdef __ATOMIC_ACQ_REL
|
|
||||||
#define CV_XADD(addr, delta) __c11_atomic_fetch_add((_Atomic(int)*)(addr), delta, __ATOMIC_ACQ_REL)
|
|
||||||
#else
|
|
||||||
#define CV_XADD(addr, delta) __atomic_fetch_add((_Atomic(int)*)(addr), delta, 4)
|
|
||||||
#endif
|
|
||||||
#else
|
|
||||||
#ifdef __ATOMIC_ACQ_REL
|
|
||||||
// version for gcc >= 4.7
|
|
||||||
#define CV_XADD(addr, delta) __atomic_fetch_add(addr, delta, __ATOMIC_ACQ_REL)
|
|
||||||
#else
|
|
||||||
#define CV_XADD(addr, delta) __sync_fetch_and_add(addr, delta)
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
#elif (defined WIN32 || defined _WIN32 || defined WINCE) && (!defined RC_INVOKED)
|
|
||||||
#if !defined(_M_AMD64) && !defined(_M_IA64) && !defined(_M_ARM)
|
|
||||||
extern "C" __declspec(dllimport) long __stdcall InterlockedExchangeAdd(long volatile *Addend, long Value);
|
|
||||||
#define CV_XADD(addr, delta) (int)InterlockedExchangeAdd((long volatile*)addr, delta)
|
|
||||||
#else
|
|
||||||
extern "C" long _InterlockedExchangeAdd (long volatile *Addend, long Value);
|
|
||||||
#pragma intrinsic(_InterlockedExchangeAdd)
|
|
||||||
#define CV_XADD(addr, delta) (int)_InterlockedExchangeAdd((long volatile*)addr, delta)
|
|
||||||
#endif
|
|
||||||
#else
|
|
||||||
static inline CV_XADD(int* addr, int delta) { int tmp = *addr; *addr += delta; return tmp; }
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#include <limits>
|
#include <limits>
|
||||||
|
|
||||||
#ifdef _MSC_VER
|
#ifdef _MSC_VER
|
||||||
|
@ -43,57 +43,6 @@
|
|||||||
#ifndef __OPENCV_CORE_TYPES_H__
|
#ifndef __OPENCV_CORE_TYPES_H__
|
||||||
#define __OPENCV_CORE_TYPES_H__
|
#define __OPENCV_CORE_TYPES_H__
|
||||||
|
|
||||||
#if !defined _CRT_SECURE_NO_DEPRECATE && defined _MSC_VER
|
|
||||||
# if _MSC_VER > 1300
|
|
||||||
# define _CRT_SECURE_NO_DEPRECATE /* to avoid multiple Visual Studio 2005 warnings */
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef SKIP_INCLUDES
|
|
||||||
|
|
||||||
#include <assert.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <float.h>
|
|
||||||
|
|
||||||
#if !defined _MSC_VER && !defined __BORLANDC__
|
|
||||||
# include <stdint.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined __ICL
|
|
||||||
# define CV_ICC __ICL
|
|
||||||
#elif defined __ICC
|
|
||||||
# define CV_ICC __ICC
|
|
||||||
#elif defined __ECL
|
|
||||||
# define CV_ICC __ECL
|
|
||||||
#elif defined __ECC
|
|
||||||
# define CV_ICC __ECC
|
|
||||||
#elif defined __INTEL_COMPILER
|
|
||||||
# define CV_ICC __INTEL_COMPILER
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined CV_ICC && !defined CV_ENABLE_UNROLLED
|
|
||||||
# define CV_ENABLE_UNROLLED 0
|
|
||||||
#else
|
|
||||||
# define CV_ENABLE_UNROLLED 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if (defined _M_X64 && defined _MSC_VER && _MSC_VER >= 1400) || (__GNUC__ >= 4 && defined __x86_64__)
|
|
||||||
# if defined WIN32
|
|
||||||
# include <intrin.h>
|
|
||||||
# endif
|
|
||||||
# if defined __SSE2__ || !defined __GNUC__
|
|
||||||
# include <emmintrin.h>
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined __BORLANDC__
|
|
||||||
# include <fastmath.h>
|
|
||||||
#else
|
|
||||||
# include <math.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef HAVE_IPL
|
#ifdef HAVE_IPL
|
||||||
# ifndef __IPL_H__
|
# ifndef __IPL_H__
|
||||||
# if defined WIN32 || defined _WIN32
|
# if defined WIN32 || defined _WIN32
|
||||||
@ -106,6 +55,13 @@
|
|||||||
# define HAVE_IPL
|
# define HAVE_IPL
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include "opencv2/core/cvdef.h"
|
||||||
|
|
||||||
|
#ifndef SKIP_INCLUDES
|
||||||
|
#include <assert.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <float.h>
|
||||||
#endif // SKIP_INCLUDES
|
#endif // SKIP_INCLUDES
|
||||||
|
|
||||||
#if defined WIN32 || defined _WIN32
|
#if defined WIN32 || defined _WIN32
|
||||||
@ -116,12 +72,10 @@
|
|||||||
# define CV_STDCALL
|
# define CV_STDCALL
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef CV_EXTERN_C
|
#ifndef CV_DEFAULT
|
||||||
# ifdef __cplusplus
|
# ifdef __cplusplus
|
||||||
# define CV_EXTERN_C extern "C"
|
|
||||||
# define CV_DEFAULT(val) = val
|
# define CV_DEFAULT(val) = val
|
||||||
# else
|
# else
|
||||||
# define CV_EXTERN_C
|
|
||||||
# define CV_DEFAULT(val)
|
# define CV_DEFAULT(val)
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
@ -134,60 +88,10 @@
|
|||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef CV_INLINE
|
|
||||||
# if defined __cplusplus
|
|
||||||
# define CV_INLINE inline
|
|
||||||
# elif (defined WIN32 || defined _WIN32 || defined WINCE) && !defined __GNUC__
|
|
||||||
# define CV_INLINE __inline
|
|
||||||
# else
|
|
||||||
# define CV_INLINE static
|
|
||||||
# endif
|
|
||||||
#endif /* CV_INLINE */
|
|
||||||
|
|
||||||
#if (defined WIN32 || defined _WIN32 || defined WINCE) && defined CVAPI_EXPORTS
|
|
||||||
# define CV_EXPORTS __declspec(dllexport)
|
|
||||||
#else
|
|
||||||
# define CV_EXPORTS
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef CVAPI
|
#ifndef CVAPI
|
||||||
# define CVAPI(rettype) CV_EXTERN_C CV_EXPORTS rettype CV_CDECL
|
# define CVAPI(rettype) CV_EXTERN_C CV_EXPORTS rettype CV_CDECL
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined _MSC_VER || defined __BORLANDC__
|
|
||||||
typedef __int64 int64;
|
|
||||||
typedef unsigned __int64 uint64;
|
|
||||||
# define CV_BIG_INT(n) n##I64
|
|
||||||
# define CV_BIG_UINT(n) n##UI64
|
|
||||||
#else
|
|
||||||
typedef int64_t int64;
|
|
||||||
typedef uint64_t uint64;
|
|
||||||
# define CV_BIG_INT(n) n##LL
|
|
||||||
# define CV_BIG_UINT(n) n##ULL
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef HAVE_IPL
|
|
||||||
typedef unsigned char uchar;
|
|
||||||
typedef unsigned short ushort;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
typedef signed char schar;
|
|
||||||
|
|
||||||
/* special informative macros for wrapper generators */
|
|
||||||
#define CV_CARRAY(counter)
|
|
||||||
#define CV_CUSTOM_CARRAY(args)
|
|
||||||
#define CV_EXPORTS_W CV_EXPORTS
|
|
||||||
#define CV_EXPORTS_W_SIMPLE CV_EXPORTS
|
|
||||||
#define CV_EXPORTS_AS(synonym) CV_EXPORTS
|
|
||||||
#define CV_EXPORTS_W_MAP CV_EXPORTS
|
|
||||||
#define CV_IN_OUT
|
|
||||||
#define CV_OUT
|
|
||||||
#define CV_PROP
|
|
||||||
#define CV_PROP_RW
|
|
||||||
#define CV_WRAP
|
|
||||||
#define CV_WRAP_AS(synonym)
|
|
||||||
#define CV_WRAP_DEFAULT(value)
|
|
||||||
|
|
||||||
/* CvArr* is used to pass arbitrary
|
/* CvArr* is used to pass arbitrary
|
||||||
* array-like data structures
|
* array-like data structures
|
||||||
* into functions where the particular
|
* into functions where the particular
|
||||||
@ -271,13 +175,6 @@ enum {
|
|||||||
* Common macros and inline functions *
|
* Common macros and inline functions *
|
||||||
\****************************************************************************************/
|
\****************************************************************************************/
|
||||||
|
|
||||||
#ifdef HAVE_TEGRA_OPTIMIZATION
|
|
||||||
# include "tegra_round.hpp"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define CV_PI 3.1415926535897932384626433832795
|
|
||||||
#define CV_LOG2 0.69314718055994530941723212145818
|
|
||||||
|
|
||||||
#define CV_SWAP(a,b,t) ((t) = (a), (a) = (b), (b) = (t))
|
#define CV_SWAP(a,b,t) ((t) = (a), (a) = (b), (b) = (t))
|
||||||
|
|
||||||
#ifndef MIN
|
#ifndef MIN
|
||||||
@ -302,88 +199,9 @@ enum {
|
|||||||
#define CV_CMP(a,b) (((a) > (b)) - ((a) < (b)))
|
#define CV_CMP(a,b) (((a) > (b)) - ((a) < (b)))
|
||||||
#define CV_SIGN(a) CV_CMP((a),0)
|
#define CV_SIGN(a) CV_CMP((a),0)
|
||||||
|
|
||||||
CV_INLINE int cvRound( double value )
|
|
||||||
{
|
|
||||||
#if (defined _MSC_VER && defined _M_X64) || (defined __GNUC__ && defined __x86_64__ && defined __SSE2__ && !defined __APPLE__)
|
|
||||||
__m128d t = _mm_set_sd( value );
|
|
||||||
return _mm_cvtsd_si32(t);
|
|
||||||
#elif defined _MSC_VER && defined _M_IX86
|
|
||||||
int t;
|
|
||||||
__asm
|
|
||||||
{
|
|
||||||
fld value;
|
|
||||||
fistp t;
|
|
||||||
}
|
|
||||||
return t;
|
|
||||||
#elif defined HAVE_LRINT || defined CV_ICC || defined __GNUC__
|
|
||||||
# ifdef HAVE_TEGRA_OPTIMIZATION
|
|
||||||
TEGRA_ROUND(value);
|
|
||||||
# else
|
|
||||||
return (int)lrint(value);
|
|
||||||
# endif
|
|
||||||
#else
|
|
||||||
// while this is not IEEE754-compliant rounding, it's usually a good enough approximation
|
|
||||||
return (int)(value + (value >= 0 ? 0.5 : -0.5));
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
#if defined __SSE2__ || (defined _M_IX86_FP && 2 == _M_IX86_FP)
|
|
||||||
# include "emmintrin.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
CV_INLINE int cvFloor( double value )
|
|
||||||
{
|
|
||||||
#if defined _MSC_VER && defined _M_X64 || (defined __GNUC__ && defined __SSE2__ && !defined __APPLE__)
|
|
||||||
__m128d t = _mm_set_sd( value );
|
|
||||||
int i = _mm_cvtsd_si32(t);
|
|
||||||
return i - _mm_movemask_pd(_mm_cmplt_sd(t, _mm_cvtsi32_sd(t,i)));
|
|
||||||
#elif defined __GNUC__
|
|
||||||
int i = (int)value;
|
|
||||||
return i - (i > value);
|
|
||||||
#else
|
|
||||||
int i = cvRound(value);
|
|
||||||
float diff = (float)(value - i);
|
|
||||||
return i - (diff < 0);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
CV_INLINE int cvCeil( double value )
|
|
||||||
{
|
|
||||||
#if defined _MSC_VER && defined _M_X64 || (defined __GNUC__ && defined __SSE2__&& !defined __APPLE__)
|
|
||||||
__m128d t = _mm_set_sd( value );
|
|
||||||
int i = _mm_cvtsd_si32(t);
|
|
||||||
return i + _mm_movemask_pd(_mm_cmplt_sd(_mm_cvtsi32_sd(t,i), t));
|
|
||||||
#elif defined __GNUC__
|
|
||||||
int i = (int)value;
|
|
||||||
return i + (i < value);
|
|
||||||
#else
|
|
||||||
int i = cvRound(value);
|
|
||||||
float diff = (float)(i - value);
|
|
||||||
return i + (diff < 0);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
#define cvInvSqrt(value) ((float)(1./sqrt(value)))
|
#define cvInvSqrt(value) ((float)(1./sqrt(value)))
|
||||||
#define cvSqrt(value) ((float)sqrt(value))
|
#define cvSqrt(value) ((float)sqrt(value))
|
||||||
|
|
||||||
CV_INLINE int cvIsNaN( double value )
|
|
||||||
{
|
|
||||||
Cv64suf ieee754;
|
|
||||||
ieee754.f = value;
|
|
||||||
return ((unsigned)(ieee754.u >> 32) & 0x7fffffff) +
|
|
||||||
((unsigned)ieee754.u != 0) > 0x7ff00000;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
CV_INLINE int cvIsInf( double value )
|
|
||||||
{
|
|
||||||
Cv64suf ieee754;
|
|
||||||
ieee754.f = value;
|
|
||||||
return ((unsigned)(ieee754.u >> 32) & 0x7fffffff) == 0x7ff00000 &&
|
|
||||||
(unsigned)ieee754.u == 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*************** Random number generation *******************/
|
/*************** Random number generation *******************/
|
||||||
|
|
||||||
@ -553,82 +371,9 @@ IplConvKernelFP;
|
|||||||
* Matrix type (CvMat) *
|
* Matrix type (CvMat) *
|
||||||
\****************************************************************************************/
|
\****************************************************************************************/
|
||||||
|
|
||||||
#define CV_CN_MAX 512
|
|
||||||
#define CV_CN_SHIFT 3
|
|
||||||
#define CV_DEPTH_MAX (1 << CV_CN_SHIFT)
|
|
||||||
|
|
||||||
#define CV_8U 0
|
|
||||||
#define CV_8S 1
|
|
||||||
#define CV_16U 2
|
|
||||||
#define CV_16S 3
|
|
||||||
#define CV_32S 4
|
|
||||||
#define CV_32F 5
|
|
||||||
#define CV_64F 6
|
|
||||||
#define CV_USRTYPE1 7
|
|
||||||
|
|
||||||
#define CV_MAT_DEPTH_MASK (CV_DEPTH_MAX - 1)
|
|
||||||
#define CV_MAT_DEPTH(flags) ((flags) & CV_MAT_DEPTH_MASK)
|
|
||||||
|
|
||||||
#define CV_MAKETYPE(depth,cn) (CV_MAT_DEPTH(depth) + (((cn)-1) << CV_CN_SHIFT))
|
|
||||||
#define CV_MAKE_TYPE CV_MAKETYPE
|
|
||||||
|
|
||||||
#define CV_8UC1 CV_MAKETYPE(CV_8U,1)
|
|
||||||
#define CV_8UC2 CV_MAKETYPE(CV_8U,2)
|
|
||||||
#define CV_8UC3 CV_MAKETYPE(CV_8U,3)
|
|
||||||
#define CV_8UC4 CV_MAKETYPE(CV_8U,4)
|
|
||||||
#define CV_8UC(n) CV_MAKETYPE(CV_8U,(n))
|
|
||||||
|
|
||||||
#define CV_8SC1 CV_MAKETYPE(CV_8S,1)
|
|
||||||
#define CV_8SC2 CV_MAKETYPE(CV_8S,2)
|
|
||||||
#define CV_8SC3 CV_MAKETYPE(CV_8S,3)
|
|
||||||
#define CV_8SC4 CV_MAKETYPE(CV_8S,4)
|
|
||||||
#define CV_8SC(n) CV_MAKETYPE(CV_8S,(n))
|
|
||||||
|
|
||||||
#define CV_16UC1 CV_MAKETYPE(CV_16U,1)
|
|
||||||
#define CV_16UC2 CV_MAKETYPE(CV_16U,2)
|
|
||||||
#define CV_16UC3 CV_MAKETYPE(CV_16U,3)
|
|
||||||
#define CV_16UC4 CV_MAKETYPE(CV_16U,4)
|
|
||||||
#define CV_16UC(n) CV_MAKETYPE(CV_16U,(n))
|
|
||||||
|
|
||||||
#define CV_16SC1 CV_MAKETYPE(CV_16S,1)
|
|
||||||
#define CV_16SC2 CV_MAKETYPE(CV_16S,2)
|
|
||||||
#define CV_16SC3 CV_MAKETYPE(CV_16S,3)
|
|
||||||
#define CV_16SC4 CV_MAKETYPE(CV_16S,4)
|
|
||||||
#define CV_16SC(n) CV_MAKETYPE(CV_16S,(n))
|
|
||||||
|
|
||||||
#define CV_32SC1 CV_MAKETYPE(CV_32S,1)
|
|
||||||
#define CV_32SC2 CV_MAKETYPE(CV_32S,2)
|
|
||||||
#define CV_32SC3 CV_MAKETYPE(CV_32S,3)
|
|
||||||
#define CV_32SC4 CV_MAKETYPE(CV_32S,4)
|
|
||||||
#define CV_32SC(n) CV_MAKETYPE(CV_32S,(n))
|
|
||||||
|
|
||||||
#define CV_32FC1 CV_MAKETYPE(CV_32F,1)
|
|
||||||
#define CV_32FC2 CV_MAKETYPE(CV_32F,2)
|
|
||||||
#define CV_32FC3 CV_MAKETYPE(CV_32F,3)
|
|
||||||
#define CV_32FC4 CV_MAKETYPE(CV_32F,4)
|
|
||||||
#define CV_32FC(n) CV_MAKETYPE(CV_32F,(n))
|
|
||||||
|
|
||||||
#define CV_64FC1 CV_MAKETYPE(CV_64F,1)
|
|
||||||
#define CV_64FC2 CV_MAKETYPE(CV_64F,2)
|
|
||||||
#define CV_64FC3 CV_MAKETYPE(CV_64F,3)
|
|
||||||
#define CV_64FC4 CV_MAKETYPE(CV_64F,4)
|
|
||||||
#define CV_64FC(n) CV_MAKETYPE(CV_64F,(n))
|
|
||||||
|
|
||||||
#define CV_AUTO_STEP 0x7fffffff
|
#define CV_AUTO_STEP 0x7fffffff
|
||||||
#define CV_WHOLE_ARR cvSlice( 0, 0x3fffffff )
|
#define CV_WHOLE_ARR cvSlice( 0, 0x3fffffff )
|
||||||
|
|
||||||
#define CV_MAT_CN_MASK ((CV_CN_MAX - 1) << CV_CN_SHIFT)
|
|
||||||
#define CV_MAT_CN(flags) ((((flags) & CV_MAT_CN_MASK) >> CV_CN_SHIFT) + 1)
|
|
||||||
#define CV_MAT_TYPE_MASK (CV_DEPTH_MAX*CV_CN_MAX - 1)
|
|
||||||
#define CV_MAT_TYPE(flags) ((flags) & CV_MAT_TYPE_MASK)
|
|
||||||
#define CV_MAT_CONT_FLAG_SHIFT 14
|
|
||||||
#define CV_MAT_CONT_FLAG (1 << CV_MAT_CONT_FLAG_SHIFT)
|
|
||||||
#define CV_IS_MAT_CONT(flags) ((flags) & CV_MAT_CONT_FLAG)
|
|
||||||
#define CV_IS_CONT_MAT CV_IS_MAT_CONT
|
|
||||||
#define CV_SUBMAT_FLAG_SHIFT 15
|
|
||||||
#define CV_SUBMAT_FLAG (1 << CV_SUBMAT_FLAG_SHIFT)
|
|
||||||
#define CV_IS_SUBMAT(flags) ((flags) & CV_MAT_SUBMAT_FLAG)
|
|
||||||
|
|
||||||
#define CV_MAGIC_MASK 0xFFFF0000
|
#define CV_MAGIC_MASK 0xFFFF0000
|
||||||
#define CV_MAT_MAGIC_VAL 0x42420000
|
#define CV_MAT_MAGIC_VAL 0x42420000
|
||||||
#define CV_TYPE_NAME_MAT "opencv-matrix"
|
#define CV_TYPE_NAME_MAT "opencv-matrix"
|
||||||
@ -703,15 +448,6 @@ CvMat;
|
|||||||
#define CV_IS_MAT_CONST(mat) \
|
#define CV_IS_MAT_CONST(mat) \
|
||||||
(((mat)->rows|(mat)->cols) == 1)
|
(((mat)->rows|(mat)->cols) == 1)
|
||||||
|
|
||||||
/* Size of each channel item,
|
|
||||||
0x124489 = 1000 0100 0100 0010 0010 0001 0001 ~ array of sizeof(arr_type_elem) */
|
|
||||||
#define CV_ELEM_SIZE1(type) \
|
|
||||||
((((sizeof(size_t)<<28)|0x8442211) >> CV_MAT_DEPTH(type)*4) & 15)
|
|
||||||
|
|
||||||
/* 0x3a50 = 11 10 10 01 01 00 00 ~ array of log2(sizeof(arr_type_elem)) */
|
|
||||||
#define CV_ELEM_SIZE(type) \
|
|
||||||
(CV_MAT_CN(type) << ((((sizeof(size_t)/4+1)*16384|0x3a50) >> CV_MAT_DEPTH(type)*2) & 3))
|
|
||||||
|
|
||||||
#define IPL2CV_DEPTH(depth) \
|
#define IPL2CV_DEPTH(depth) \
|
||||||
((((CV_8U)+(CV_16U<<4)+(CV_32F<<8)+(CV_64F<<16)+(CV_8S<<20)+ \
|
((((CV_8U)+(CV_16U<<4)+(CV_32F<<8)+(CV_64F<<16)+(CV_8S<<20)+ \
|
||||||
(CV_16S<<24)+(CV_32S<<28)) >> ((((depth) & 0xF0) >> 2) + \
|
(CV_16S<<24)+(CV_32S<<28)) >> ((((depth) & 0xF0) >> 2) + \
|
||||||
|
@ -162,7 +162,7 @@ Refines the corner locations.
|
|||||||
|
|
||||||
.. ocv:function:: void cornerSubPix( InputArray image, InputOutputArray corners, Size winSize, Size zeroZone, TermCriteria criteria )
|
.. ocv:function:: void cornerSubPix( InputArray image, InputOutputArray corners, Size winSize, Size zeroZone, TermCriteria criteria )
|
||||||
|
|
||||||
.. ocv:pyfunction:: cv2.cornerSubPix(image, corners, winSize, zeroZone, criteria) -> None
|
.. ocv:pyfunction:: cv2.cornerSubPix(image, corners, winSize, zeroZone, criteria) -> corners
|
||||||
|
|
||||||
.. ocv:cfunction:: void cvFindCornerSubPix( const CvArr* image, CvPoint2D32f* corners, int count, CvSize win, CvSize zero_zone, CvTermCriteria criteria )
|
.. ocv:cfunction:: void cvFindCornerSubPix( const CvArr* image, CvPoint2D32f* corners, int count, CvSize win, CvSize zero_zone, CvTermCriteria criteria )
|
||||||
|
|
||||||
|
@ -488,7 +488,7 @@ Fills a connected component with the given color.
|
|||||||
|
|
||||||
.. ocv:function:: int floodFill( InputOutputArray image, InputOutputArray mask, Point seedPoint, Scalar newVal, Rect* rect=0, Scalar loDiff=Scalar(), Scalar upDiff=Scalar(), int flags=4 )
|
.. ocv:function:: int floodFill( InputOutputArray image, InputOutputArray mask, Point seedPoint, Scalar newVal, Rect* rect=0, Scalar loDiff=Scalar(), Scalar upDiff=Scalar(), int flags=4 )
|
||||||
|
|
||||||
.. ocv:pyfunction:: cv2.floodFill(image, mask, seedPoint, newVal[, loDiff[, upDiff[, flags]]]) -> retval, rect
|
.. ocv:pyfunction:: cv2.floodFill(image, mask, seedPoint, newVal[, loDiff[, upDiff[, flags]]]) -> retval, image, mask, rect
|
||||||
|
|
||||||
.. ocv:cfunction:: void cvFloodFill( CvArr* image, CvPoint seed_point, CvScalar new_val, CvScalar lo_diff=cvScalarAll(0), CvScalar up_diff=cvScalarAll(0), CvConnectedComp* comp=NULL, int flags=4, CvArr* mask=NULL )
|
.. ocv:cfunction:: void cvFloodFill( CvArr* image, CvPoint seed_point, CvScalar new_val, CvScalar lo_diff=cvScalarAll(0), CvScalar up_diff=cvScalarAll(0), CvConnectedComp* comp=NULL, int flags=4, CvArr* mask=NULL )
|
||||||
.. ocv:pyoldfunction:: cv.FloodFill(image, seed_point, new_val, lo_diff=(0, 0, 0, 0), up_diff=(0, 0, 0, 0), flags=4, mask=None)-> comp
|
.. ocv:pyoldfunction:: cv.FloodFill(image, seed_point, new_val, lo_diff=(0, 0, 0, 0), up_diff=(0, 0, 0, 0), flags=4, mask=None)-> comp
|
||||||
@ -731,7 +731,7 @@ Performs a marker-based image segmentation using the watershed algorithm.
|
|||||||
|
|
||||||
.. ocv:cfunction:: void cvWatershed( const CvArr* image, CvArr* markers )
|
.. ocv:cfunction:: void cvWatershed( const CvArr* image, CvArr* markers )
|
||||||
|
|
||||||
.. ocv:pyfunction:: cv2.watershed(image, markers) -> None
|
.. ocv:pyfunction:: cv2.watershed(image, markers) -> markers
|
||||||
|
|
||||||
:param image: Input 8-bit 3-channel image.
|
:param image: Input 8-bit 3-channel image.
|
||||||
|
|
||||||
@ -753,7 +753,7 @@ Runs the GrabCut algorithm.
|
|||||||
|
|
||||||
.. ocv:function:: void grabCut( InputArray img, InputOutputArray mask, Rect rect, InputOutputArray bgdModel, InputOutputArray fgdModel, int iterCount, int mode=GC_EVAL )
|
.. ocv:function:: void grabCut( InputArray img, InputOutputArray mask, Rect rect, InputOutputArray bgdModel, InputOutputArray fgdModel, int iterCount, int mode=GC_EVAL )
|
||||||
|
|
||||||
.. ocv:pyfunction:: cv2.grabCut(img, mask, rect, bgdModel, fgdModel, iterCount[, mode]) -> None
|
.. ocv:pyfunction:: cv2.grabCut(img, mask, rect, bgdModel, fgdModel, iterCount[, mode]) -> mask, bgdModel, fgdModel
|
||||||
|
|
||||||
:param img: Input 8-bit 3-channel image.
|
:param img: Input 8-bit 3-channel image.
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@ Adds an image to the accumulator.
|
|||||||
|
|
||||||
.. ocv:function:: void accumulate( InputArray src, InputOutputArray dst, InputArray mask=noArray() )
|
.. ocv:function:: void accumulate( InputArray src, InputOutputArray dst, InputArray mask=noArray() )
|
||||||
|
|
||||||
.. ocv:pyfunction:: cv2.accumulate(src, dst[, mask]) -> None
|
.. ocv:pyfunction:: cv2.accumulate(src, dst[, mask]) -> dst
|
||||||
|
|
||||||
.. ocv:cfunction:: void cvAcc( const CvArr* image, CvArr* sum, const CvArr* mask=NULL )
|
.. ocv:cfunction:: void cvAcc( const CvArr* image, CvArr* sum, const CvArr* mask=NULL )
|
||||||
|
|
||||||
@ -45,7 +45,7 @@ Adds the square of a source image to the accumulator.
|
|||||||
|
|
||||||
.. ocv:function:: void accumulateSquare( InputArray src, InputOutputArray dst, InputArray mask=noArray() )
|
.. ocv:function:: void accumulateSquare( InputArray src, InputOutputArray dst, InputArray mask=noArray() )
|
||||||
|
|
||||||
.. ocv:pyfunction:: cv2.accumulateSquare(src, dst[, mask]) -> None
|
.. ocv:pyfunction:: cv2.accumulateSquare(src, dst[, mask]) -> dst
|
||||||
|
|
||||||
.. ocv:cfunction:: void cvSquareAcc( const CvArr* image, CvArr* sqsum, const CvArr* mask=NULL )
|
.. ocv:cfunction:: void cvSquareAcc( const CvArr* image, CvArr* sqsum, const CvArr* mask=NULL )
|
||||||
|
|
||||||
@ -79,7 +79,7 @@ Adds the per-element product of two input images to the accumulator.
|
|||||||
|
|
||||||
.. ocv:function:: void accumulateProduct( InputArray src1, InputArray src2, InputOutputArray dst, InputArray mask=noArray() )
|
.. ocv:function:: void accumulateProduct( InputArray src1, InputArray src2, InputOutputArray dst, InputArray mask=noArray() )
|
||||||
|
|
||||||
.. ocv:pyfunction:: cv2.accumulateProduct(src1, src2, dst[, mask]) -> None
|
.. ocv:pyfunction:: cv2.accumulateProduct(src1, src2, dst[, mask]) -> dst
|
||||||
|
|
||||||
.. ocv:cfunction:: void cvMultiplyAcc( const CvArr* image1, const CvArr* image2, CvArr* acc, const CvArr* mask=NULL )
|
.. ocv:cfunction:: void cvMultiplyAcc( const CvArr* image1, const CvArr* image2, CvArr* acc, const CvArr* mask=NULL )
|
||||||
|
|
||||||
@ -115,7 +115,7 @@ Updates a running average.
|
|||||||
|
|
||||||
.. ocv:function:: void accumulateWeighted( InputArray src, InputOutputArray dst, double alpha, InputArray mask=noArray() )
|
.. ocv:function:: void accumulateWeighted( InputArray src, InputOutputArray dst, double alpha, InputArray mask=noArray() )
|
||||||
|
|
||||||
.. ocv:pyfunction:: cv2.accumulateWeighted(src, dst, alpha[, mask]) -> None
|
.. ocv:pyfunction:: cv2.accumulateWeighted(src, dst, alpha[, mask]) -> dst
|
||||||
|
|
||||||
.. ocv:cfunction:: void cvRunningAvg( const CvArr* image, CvArr* acc, double alpha, const CvArr* mask=NULL )
|
.. ocv:cfunction:: void cvRunningAvg( const CvArr* image, CvArr* acc, double alpha, const CvArr* mask=NULL )
|
||||||
.. ocv:pyoldfunction:: cv.RunningAvg(image, acc, alpha, mask=None)-> None
|
.. ocv:pyoldfunction:: cv.RunningAvg(image, acc, alpha, mask=None)-> None
|
||||||
|
@ -159,7 +159,7 @@ Finds contours in a binary image.
|
|||||||
|
|
||||||
.. ocv:function:: void findContours( InputOutputArray image, OutputArrayOfArrays contours, int mode, int method, Point offset=Point())
|
.. ocv:function:: void findContours( InputOutputArray image, OutputArrayOfArrays contours, int mode, int method, Point offset=Point())
|
||||||
|
|
||||||
.. ocv:pyfunction:: cv2.findContours(image, mode, method[, contours[, hierarchy[, offset]]]) -> contours, hierarchy
|
.. ocv:pyfunction:: cv2.findContours(image, mode, method[, contours[, hierarchy[, offset]]]) -> image, contours, hierarchy
|
||||||
|
|
||||||
.. ocv:cfunction:: int cvFindContours( CvArr* image, CvMemStorage* storage, CvSeq** first_contour, int header_size=sizeof(CvContour), int mode=CV_RETR_LIST, int method=CV_CHAIN_APPROX_SIMPLE, CvPoint offset=cvPoint(0,0) )
|
.. ocv:cfunction:: int cvFindContours( CvArr* image, CvMemStorage* storage, CvSeq** first_contour, int header_size=sizeof(CvContour), int mode=CV_RETR_LIST, int method=CV_CHAIN_APPROX_SIMPLE, CvPoint offset=cvPoint(0,0) )
|
||||||
|
|
||||||
|
@ -1103,7 +1103,7 @@ CV_EXPORTS_W Moments moments( InputArray array, bool binaryImage=false );
|
|||||||
|
|
||||||
//! computes 7 Hu invariants from the moments
|
//! computes 7 Hu invariants from the moments
|
||||||
CV_EXPORTS void HuMoments( const Moments& moments, double hu[7] );
|
CV_EXPORTS void HuMoments( const Moments& moments, double hu[7] );
|
||||||
CV_EXPORTS_W void HuMoments( const Moments& m, CV_OUT OutputArray hu );
|
CV_EXPORTS_W void HuMoments( const Moments& m, OutputArray hu );
|
||||||
|
|
||||||
//! type of the template matching operation
|
//! type of the template matching operation
|
||||||
enum { TM_SQDIFF=0, TM_SQDIFF_NORMED=1, TM_CCORR=2, TM_CCORR_NORMED=3, TM_CCOEFF=4, TM_CCOEFF_NORMED=5 };
|
enum { TM_SQDIFF=0, TM_SQDIFF_NORMED=1, TM_CCORR=2, TM_CCORR_NORMED=3, TM_CCOEFF=4, TM_CCOEFF_NORMED=5 };
|
||||||
|
@ -68,8 +68,6 @@ CvStatus icvMakeScanlinesLengths( int* scanlines,
|
|||||||
|
|
||||||
/*=============================== PreWarp section ======================================*/
|
/*=============================== PreWarp section ======================================*/
|
||||||
|
|
||||||
CV_INLINE int icvGetColor(uchar* valueRGB);
|
|
||||||
|
|
||||||
CvStatus icvFindRunsInOneImage(
|
CvStatus icvFindRunsInOneImage(
|
||||||
int numLines, /* number of scanlines */
|
int numLines, /* number of scanlines */
|
||||||
uchar* prewarp, /* prewarp image */
|
uchar* prewarp, /* prewarp image */
|
||||||
|
@ -199,7 +199,7 @@ int _cvNodeMultyplicity(CvVoronoiSite2D* pSite,
|
|||||||
// pLCM : in, information about graph
|
// pLCM : in, information about graph
|
||||||
// Returns: pointer to graph node
|
// Returns: pointer to graph node
|
||||||
//F*/
|
//F*/
|
||||||
CV_IMPL
|
CV_INLINE
|
||||||
CvLCMNode* _cvCreateLCMNode(CvLCM* pLCM);
|
CvLCMNode* _cvCreateLCMNode(CvLCM* pLCM);
|
||||||
|
|
||||||
/*F///////////////////////////////////////////////////////////////////////////////////////
|
/*F///////////////////////////////////////////////////////////////////////////////////////
|
||||||
@ -211,7 +211,7 @@ CvLCMNode* _cvCreateLCMNode(CvLCM* pLCM);
|
|||||||
// pLCM : in, information about graph
|
// pLCM : in, information about graph
|
||||||
// Returns: pointer to graph edge
|
// Returns: pointer to graph edge
|
||||||
//F*/
|
//F*/
|
||||||
CV_IMPL
|
CV_INLINE
|
||||||
CvLCMEdge* _cvCreateLCMEdge(CvLCM* pLCM);
|
CvLCMEdge* _cvCreateLCMEdge(CvLCM* pLCM);
|
||||||
|
|
||||||
/*F///////////////////////////////////////////////////////////////////////////////////////
|
/*F///////////////////////////////////////////////////////////////////////////////////////
|
||||||
@ -228,7 +228,7 @@ CvLCMEdge* _cvCreateLCMEdge(CvLCM* pLCM);
|
|||||||
// =1, if node is terminal for edge
|
// =1, if node is terminal for edge
|
||||||
// Returns:
|
// Returns:
|
||||||
//F*/
|
//F*/
|
||||||
CV_IMPL
|
CV_INLINE
|
||||||
void _cvAttachLCMEdgeToLCMNode(CvLCMNode* LCMNode,
|
void _cvAttachLCMEdgeToLCMNode(CvLCMNode* LCMNode,
|
||||||
CvLCMEdge* LCMEdge,
|
CvLCMEdge* LCMEdge,
|
||||||
CvLCMEdge* &LCMEdge_prev,
|
CvLCMEdge* &LCMEdge_prev,
|
||||||
@ -263,7 +263,7 @@ void _cvProjectionPointToSegment(CvPoint2D32f* PointO,
|
|||||||
// pLCMCCNData : out
|
// pLCMCCNData : out
|
||||||
// Returns:
|
// Returns:
|
||||||
//F*/
|
//F*/
|
||||||
CV_IMPL
|
CV_INLINE
|
||||||
void _cvPrepareData(CvLCMComplexNodeData* pLCMCCNData,
|
void _cvPrepareData(CvLCMComplexNodeData* pLCMCCNData,
|
||||||
CvLCMData* pLCMData);
|
CvLCMData* pLCMData);
|
||||||
|
|
||||||
|
@ -354,6 +354,7 @@ class ArgInfo(object):
|
|||||||
elif m == "/IO":
|
elif m == "/IO":
|
||||||
self.inputarg = True
|
self.inputarg = True
|
||||||
self.outputarg = True
|
self.outputarg = True
|
||||||
|
self.returnarg = True
|
||||||
elif m.startswith("/A"):
|
elif m.startswith("/A"):
|
||||||
self.isarray = True
|
self.isarray = True
|
||||||
self.arraylen = m[2:].strip()
|
self.arraylen = m[2:].strip()
|
||||||
@ -427,7 +428,7 @@ class FuncVariant(object):
|
|||||||
continue
|
continue
|
||||||
if a.returnarg:
|
if a.returnarg:
|
||||||
outlist.append((a.name, argno))
|
outlist.append((a.name, argno))
|
||||||
if (not a.inputarg or a.returnarg) and a.isbig():
|
if (not a.inputarg) and a.isbig():
|
||||||
outarr_list.append((a.name, argno))
|
outarr_list.append((a.name, argno))
|
||||||
continue
|
continue
|
||||||
if not a.inputarg:
|
if not a.inputarg:
|
||||||
|
@ -400,7 +400,7 @@ class CppHeaderParser(object):
|
|||||||
# note that we do not strip "static" prefix, which does matter;
|
# note that we do not strip "static" prefix, which does matter;
|
||||||
# it means class methods, not instance methods
|
# it means class methods, not instance methods
|
||||||
decl_str = self.batch_replace(decl_str, [("virtual", ""), ("static inline", ""), ("inline", ""),\
|
decl_str = self.batch_replace(decl_str, [("virtual", ""), ("static inline", ""), ("inline", ""),\
|
||||||
("CV_EXPORTS_W", ""), ("CV_EXPORTS", ""), ("CV_CDECL", ""), ("CV_WRAP ", " "), ("static CV_INLINE", ""), ("CV_INLINE", "")]).strip()
|
("CV_EXPORTS_W", ""), ("CV_EXPORTS", ""), ("CV_CDECL", ""), ("CV_WRAP ", " "), ("CV_INLINE", "")]).strip()
|
||||||
|
|
||||||
static_method = False
|
static_method = False
|
||||||
context = top[0]
|
context = top[0]
|
||||||
|
@ -43,7 +43,7 @@ Implementation of soft (stageless) cascaded detector. ::
|
|||||||
virtual bool load(const FileNode& fileNode);
|
virtual bool load(const FileNode& fileNode);
|
||||||
virtual void read(const FileNode& fileNode);
|
virtual void read(const FileNode& fileNode);
|
||||||
virtual void detect(InputArray image, InputArray rois, std::vector<Detection>& objects) const;
|
virtual void detect(InputArray image, InputArray rois, std::vector<Detection>& objects) const;
|
||||||
virtual void detect(InputArray image, InputArray rois, CV_OUT OutputArray rects, CV_OUT OutputArray confs) const;
|
virtual void detect(InputArray image, InputArray rois, OutputArray rects, OutputArray confs) const;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -119,7 +119,7 @@ Public interface for of soft (stageless) cascaded detector. ::
|
|||||||
public:
|
public:
|
||||||
virtual ~ChannelFeatureBuilder();
|
virtual ~ChannelFeatureBuilder();
|
||||||
|
|
||||||
virtual void operator()(InputArray src, CV_OUT OutputArray channels) const = 0;
|
virtual void operator()(InputArray src, OutputArray channels) const = 0;
|
||||||
|
|
||||||
static cv::Ptr<ChannelFeatureBuilder> create();
|
static cv::Ptr<ChannelFeatureBuilder> create();
|
||||||
};
|
};
|
||||||
@ -131,7 +131,7 @@ Destructor for ChannelFeatureBuilder.
|
|||||||
|
|
||||||
.. ocv:function:: softcascade::ChannelFeatureBuilder::~ChannelFeatureBuilder()
|
.. ocv:function:: softcascade::ChannelFeatureBuilder::~ChannelFeatureBuilder()
|
||||||
|
|
||||||
.. ocv:pyfunction:: cv2.softcascade_ChannelFeatureBuilder_create() -> retval
|
.. ocv:pyfunction:: cv2.softcascade_ChannelFeatureBuilder_create(featureType) -> retval
|
||||||
|
|
||||||
|
|
||||||
softcascade::ChannelFeatureBuilder::operator()
|
softcascade::ChannelFeatureBuilder::operator()
|
||||||
|
@ -127,7 +127,7 @@ public:
|
|||||||
virtual ~ChannelFeatureBuilder();
|
virtual ~ChannelFeatureBuilder();
|
||||||
|
|
||||||
// apply channels to source frame
|
// apply channels to source frame
|
||||||
CV_WRAP_AS(compute) virtual void operator()(InputArray src, CV_OUT OutputArray channels, cv::Size channelsSize = cv::Size()) const = 0;
|
CV_WRAP_AS(compute) virtual void operator()(InputArray src, OutputArray channels, cv::Size channelsSize = cv::Size()) const = 0;
|
||||||
|
|
||||||
CV_WRAP virtual int totalChannels() const = 0;
|
CV_WRAP virtual int totalChannels() const = 0;
|
||||||
virtual cv::AlgorithmInfo* info() const = 0;
|
virtual cv::AlgorithmInfo* info() const = 0;
|
||||||
@ -170,7 +170,7 @@ public:
|
|||||||
|
|
||||||
// Param rects is an output array of bounding rectangles for detected objects.
|
// Param rects is an output array of bounding rectangles for detected objects.
|
||||||
// Param confs is an output array of confidence for detected objects. i-th bounding rectangle corresponds i-th confidence.
|
// Param confs is an output array of confidence for detected objects. i-th bounding rectangle corresponds i-th confidence.
|
||||||
CV_WRAP virtual void detect(InputArray image, InputArray rois, CV_OUT OutputArray rects, CV_OUT OutputArray confs) const;
|
CV_WRAP virtual void detect(InputArray image, InputArray rois, OutputArray rects, OutputArray confs) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void detectNoRoi(const Mat& image, std::vector<Detection>& objects) const;
|
void detectNoRoi(const Mat& image, std::vector<Detection>& objects) const;
|
||||||
|
@ -55,7 +55,7 @@ public:
|
|||||||
|
|
||||||
virtual int totalChannels() const {return N_CHANNELS; }
|
virtual int totalChannels() const {return N_CHANNELS; }
|
||||||
|
|
||||||
virtual void operator()(cv::InputArray _frame, CV_OUT cv::OutputArray _integrals, cv::Size channelsSize) const
|
virtual void operator()(cv::InputArray _frame, cv::OutputArray _integrals, cv::Size channelsSize) const
|
||||||
{
|
{
|
||||||
CV_Assert(_frame.type() == CV_8UC3);
|
CV_Assert(_frame.type() == CV_8UC3);
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@ Calculates an optical flow for a sparse feature set using the iterative Lucas-Ka
|
|||||||
|
|
||||||
.. ocv:function:: void calcOpticalFlowPyrLK( InputArray prevImg, InputArray nextImg, InputArray prevPts, InputOutputArray nextPts, OutputArray status, OutputArray err, Size winSize=Size(21,21), int maxLevel=3, TermCriteria criteria=TermCriteria(TermCriteria::COUNT+TermCriteria::EPS, 30, 0.01), int flags=0, double minEigThreshold=1e-4 )
|
.. ocv:function:: void calcOpticalFlowPyrLK( InputArray prevImg, InputArray nextImg, InputArray prevPts, InputOutputArray nextPts, OutputArray status, OutputArray err, Size winSize=Size(21,21), int maxLevel=3, TermCriteria criteria=TermCriteria(TermCriteria::COUNT+TermCriteria::EPS, 30, 0.01), int flags=0, double minEigThreshold=1e-4 )
|
||||||
|
|
||||||
.. ocv:pyfunction:: cv2.calcOpticalFlowPyrLK(prevImg, nextImg, prevPts[, nextPts[, status[, err[, winSize[, maxLevel[, criteria[, flags[, minEigThreshold]]]]]]]]) -> nextPts, status, err
|
.. ocv:pyfunction:: cv2.calcOpticalFlowPyrLK(prevImg, nextImg, prevPts, nextPts[, status[, err[, winSize[, maxLevel[, criteria[, flags[, minEigThreshold]]]]]]]) -> nextPts, status, err
|
||||||
|
|
||||||
.. ocv:cfunction:: void cvCalcOpticalFlowPyrLK( const CvArr* prev, const CvArr* curr, CvArr* prev_pyr, CvArr* curr_pyr, const CvPoint2D32f* prev_features, CvPoint2D32f* curr_features, int count, CvSize win_size, int level, char* status, float* track_error, CvTermCriteria criteria, int flags )
|
.. ocv:cfunction:: void cvCalcOpticalFlowPyrLK( const CvArr* prev, const CvArr* curr, CvArr* prev_pyr, CvArr* curr_pyr, const CvPoint2D32f* prev_features, CvPoint2D32f* curr_features, int count, CvSize win_size, int level, char* status, float* track_error, CvTermCriteria criteria, int flags )
|
||||||
.. ocv:pyoldfunction:: cv.CalcOpticalFlowPyrLK(prev, curr, prevPyr, currPyr, prevFeatures, winSize, level, criteria, flags, guesses=None) -> (currFeatures, status, track_error)
|
.. ocv:pyoldfunction:: cv.CalcOpticalFlowPyrLK(prev, curr, prevPyr, currPyr, prevFeatures, winSize, level, criteria, flags, guesses=None) -> (currFeatures, status, track_error)
|
||||||
@ -77,7 +77,7 @@ Computes a dense optical flow using the Gunnar Farneback's algorithm.
|
|||||||
|
|
||||||
.. ocv:cfunction:: void cvCalcOpticalFlowFarneback( const CvArr* prev, const CvArr* next, CvArr* flow, double pyr_scale, int levels, int winsize, int iterations, int poly_n, double poly_sigma, int flags )
|
.. ocv:cfunction:: void cvCalcOpticalFlowFarneback( const CvArr* prev, const CvArr* next, CvArr* flow, double pyr_scale, int levels, int winsize, int iterations, int poly_n, double poly_sigma, int flags )
|
||||||
|
|
||||||
.. ocv:pyfunction:: cv2.calcOpticalFlowFarneback(prev, next, pyr_scale, levels, winsize, iterations, poly_n, poly_sigma, flags[, flow]) -> flow
|
.. ocv:pyfunction:: cv2.calcOpticalFlowFarneback(prev, next, flow, pyr_scale, levels, winsize, iterations, poly_n, poly_sigma, flags) -> flow
|
||||||
|
|
||||||
:param prev: first 8-bit single-channel input image.
|
:param prev: first 8-bit single-channel input image.
|
||||||
|
|
||||||
@ -204,7 +204,7 @@ Updates the motion history image by a moving silhouette.
|
|||||||
|
|
||||||
.. ocv:function:: void updateMotionHistory( InputArray silhouette, InputOutputArray mhi, double timestamp, double duration )
|
.. ocv:function:: void updateMotionHistory( InputArray silhouette, InputOutputArray mhi, double timestamp, double duration )
|
||||||
|
|
||||||
.. ocv:pyfunction:: cv2.updateMotionHistory(silhouette, mhi, timestamp, duration) -> None
|
.. ocv:pyfunction:: cv2.updateMotionHistory(silhouette, mhi, timestamp, duration) -> mhi
|
||||||
|
|
||||||
.. ocv:cfunction:: void cvUpdateMotionHistory( const CvArr* silhouette, CvArr* mhi, double timestamp, double duration )
|
.. ocv:cfunction:: void cvUpdateMotionHistory( const CvArr* silhouette, CvArr* mhi, double timestamp, double duration )
|
||||||
.. ocv:pyoldfunction:: cv.UpdateMotionHistory(silhouette, mhi, timestamp, duration)-> None
|
.. ocv:pyoldfunction:: cv.UpdateMotionHistory(silhouette, mhi, timestamp, duration)-> None
|
||||||
|
@ -325,7 +325,7 @@ CV_EXPORTS_W int buildOpticalFlowPyramid(InputArray img, OutputArrayOfArrays pyr
|
|||||||
|
|
||||||
//! computes sparse optical flow using multi-scale Lucas-Kanade algorithm
|
//! computes sparse optical flow using multi-scale Lucas-Kanade algorithm
|
||||||
CV_EXPORTS_W void calcOpticalFlowPyrLK( InputArray prevImg, InputArray nextImg,
|
CV_EXPORTS_W void calcOpticalFlowPyrLK( InputArray prevImg, InputArray nextImg,
|
||||||
InputArray prevPts, CV_OUT InputOutputArray nextPts,
|
InputArray prevPts, InputOutputArray nextPts,
|
||||||
OutputArray status, OutputArray err,
|
OutputArray status, OutputArray err,
|
||||||
Size winSize=Size(21,21), int maxLevel=3,
|
Size winSize=Size(21,21), int maxLevel=3,
|
||||||
TermCriteria criteria=TermCriteria(TermCriteria::COUNT+TermCriteria::EPS, 30, 0.01),
|
TermCriteria criteria=TermCriteria(TermCriteria::COUNT+TermCriteria::EPS, 30, 0.01),
|
||||||
@ -333,7 +333,7 @@ CV_EXPORTS_W void calcOpticalFlowPyrLK( InputArray prevImg, InputArray nextImg,
|
|||||||
|
|
||||||
//! computes dense optical flow using Farneback algorithm
|
//! computes dense optical flow using Farneback algorithm
|
||||||
CV_EXPORTS_W void calcOpticalFlowFarneback( InputArray prev, InputArray next,
|
CV_EXPORTS_W void calcOpticalFlowFarneback( InputArray prev, InputArray next,
|
||||||
CV_OUT InputOutputArray flow, double pyr_scale, int levels, int winsize,
|
InputOutputArray flow, double pyr_scale, int levels, int winsize,
|
||||||
int iterations, int poly_n, double poly_sigma, int flags );
|
int iterations, int poly_n, double poly_sigma, int flags );
|
||||||
|
|
||||||
//! estimates the best-fit Euqcidean, similarity, affine or perspective transformation
|
//! estimates the best-fit Euqcidean, similarity, affine or perspective transformation
|
||||||
|
@ -187,7 +187,7 @@ struct GMM
|
|||||||
// shadow detection performed per pixel
|
// shadow detection performed per pixel
|
||||||
// should work for rgb data, could be usefull for gray scale and depth data as well
|
// should work for rgb data, could be usefull for gray scale and depth data as well
|
||||||
// See: Prati,Mikic,Trivedi,Cucchiarra,"Detecting Moving Shadows...",IEEE PAMI,2003.
|
// See: Prati,Mikic,Trivedi,Cucchiarra,"Detecting Moving Shadows...",IEEE PAMI,2003.
|
||||||
static CV_INLINE bool
|
CV_INLINE bool
|
||||||
detectShadowGMM(const float* data, int nchannels, int nmodes,
|
detectShadowGMM(const float* data, int nchannels, int nmodes,
|
||||||
const GMM* gmm, const float* mean,
|
const GMM* gmm, const float* mean,
|
||||||
float Tb, float TB, float tau)
|
float Tb, float TB, float tau)
|
||||||
|
@ -1031,7 +1031,7 @@ class CascadeClassifier_GPU : public OclCascadeClassifier
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
void detectMultiScale(oclMat &image,
|
void detectMultiScale(oclMat &image,
|
||||||
CV_OUT std::vector<cv::Rect>& faces,
|
std::vector<cv::Rect>& faces,
|
||||||
double scaleFactor = 1.1,
|
double scaleFactor = 1.1,
|
||||||
int minNeighbors = 3, int flags = 0,
|
int minNeighbors = 3, int flags = 0,
|
||||||
Size minSize = Size(),
|
Size minSize = Size(),
|
||||||
|
@ -27,7 +27,7 @@ if __name__ == '__main__':
|
|||||||
img_mask = img_mask[0]
|
img_mask = img_mask[0]
|
||||||
except:
|
except:
|
||||||
img_mask = '../cpp/left*.jpg'
|
img_mask = '../cpp/left*.jpg'
|
||||||
|
|
||||||
img_names = glob(img_mask)
|
img_names = glob(img_mask)
|
||||||
debug_dir = args.get('--debug')
|
debug_dir = args.get('--debug')
|
||||||
square_size = float(args.get('--square_size', 1.0))
|
square_size = float(args.get('--square_size', 1.0))
|
||||||
@ -46,7 +46,7 @@ if __name__ == '__main__':
|
|||||||
if img is None:
|
if img is None:
|
||||||
print "Failed to load", fn
|
print "Failed to load", fn
|
||||||
continue
|
continue
|
||||||
|
|
||||||
h, w = img.shape[:2]
|
h, w = img.shape[:2]
|
||||||
found, corners = cv2.findChessboardCorners(img, pattern_size)
|
found, corners = cv2.findChessboardCorners(img, pattern_size)
|
||||||
if found:
|
if found:
|
||||||
@ -65,7 +65,7 @@ if __name__ == '__main__':
|
|||||||
|
|
||||||
print 'ok'
|
print 'ok'
|
||||||
|
|
||||||
rms, camera_matrix, dist_coefs, rvecs, tvecs = cv2.calibrateCamera(obj_points, img_points, (w, h))
|
rms, camera_matrix, dist_coefs, rvecs, tvecs = cv2.calibrateCamera(obj_points, img_points, (w, h), None, None)
|
||||||
print "RMS:", rms
|
print "RMS:", rms
|
||||||
print "camera matrix:\n", camera_matrix
|
print "camera matrix:\n", camera_matrix
|
||||||
print "distortion coefficients: ", dist_coefs.ravel()
|
print "distortion coefficients: ", dist_coefs.ravel()
|
||||||
|
@ -46,7 +46,7 @@ if __name__ == '__main__':
|
|||||||
img = make_image()
|
img = make_image()
|
||||||
h, w = img.shape[:2]
|
h, w = img.shape[:2]
|
||||||
|
|
||||||
contours0, hierarchy = cv2.findContours( img.copy(), cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
|
_, contours0, hierarchy = cv2.findContours( img.copy(), cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
|
||||||
contours = [cv2.approxPolyDP(cnt, 3, True) for cnt in contours0]
|
contours = [cv2.approxPolyDP(cnt, 3, True) for cnt in contours0]
|
||||||
|
|
||||||
def update(levels):
|
def update(levels):
|
||||||
|
@ -14,9 +14,9 @@ from common import mosaic
|
|||||||
from digits import *
|
from digits import *
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
try:
|
try:
|
||||||
src = sys.argv[1]
|
src = sys.argv[1]
|
||||||
except:
|
except:
|
||||||
src = 0
|
src = 0
|
||||||
cap = video.create_capture(src)
|
cap = video.create_capture(src)
|
||||||
|
|
||||||
@ -35,7 +35,7 @@ def main():
|
|||||||
|
|
||||||
bin = cv2.adaptiveThreshold(gray, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY_INV, 31, 10)
|
bin = cv2.adaptiveThreshold(gray, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY_INV, 31, 10)
|
||||||
bin = cv2.medianBlur(bin, 3)
|
bin = cv2.medianBlur(bin, 3)
|
||||||
contours, heirs = cv2.findContours( bin.copy(), cv2.RETR_CCOMP, cv2.CHAIN_APPROX_SIMPLE)
|
_, contours, heirs = cv2.findContours( bin.copy(), cv2.RETR_CCOMP, cv2.CHAIN_APPROX_SIMPLE)
|
||||||
try:
|
try:
|
||||||
heirs = heirs[0]
|
heirs = heirs[0]
|
||||||
except:
|
except:
|
||||||
|
@ -29,7 +29,7 @@ if __name__ == '__main__':
|
|||||||
if img is None:
|
if img is None:
|
||||||
print 'Failed to load image file:', fn
|
print 'Failed to load image file:', fn
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
h, w = img.shape[:2]
|
h, w = img.shape[:2]
|
||||||
mask = np.zeros((h+2, w+2), np.uint8)
|
mask = np.zeros((h+2, w+2), np.uint8)
|
||||||
seed_pt = None
|
seed_pt = None
|
||||||
|
@ -32,7 +32,7 @@ if __name__ == '__main__':
|
|||||||
points, _ = make_gaussians(cluster_n, img_size)
|
points, _ = make_gaussians(cluster_n, img_size)
|
||||||
|
|
||||||
term_crit = (cv2.TERM_CRITERIA_EPS, 30, 0.1)
|
term_crit = (cv2.TERM_CRITERIA_EPS, 30, 0.1)
|
||||||
ret, labels, centers = cv2.kmeans(points, cluster_n, term_crit, 10, 0)
|
ret, labels, centers = cv2.kmeans(points, cluster_n, None, term_crit, 10, 0)
|
||||||
|
|
||||||
img = np.zeros((img_size, img_size, 3), np.uint8)
|
img = np.zeros((img_size, img_size, 3), np.uint8)
|
||||||
for (x, y), label in zip(np.int32(points), labels.ravel()):
|
for (x, y), label in zip(np.int32(points), labels.ravel()):
|
||||||
|
@ -63,7 +63,7 @@ if __name__ == '__main__':
|
|||||||
while True:
|
while True:
|
||||||
ret, img = cam.read()
|
ret, img = cam.read()
|
||||||
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
|
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
|
||||||
flow = cv2.calcOpticalFlowFarneback(prevgray, gray, 0.5, 3, 15, 3, 5, 1.2, 0)
|
flow = cv2.calcOpticalFlowFarneback(prevgray, gray, None, 0.5, 3, 15, 3, 5, 1.2, 0)
|
||||||
prevgray = gray
|
prevgray = gray
|
||||||
|
|
||||||
cv2.imshow('flow', draw_flow(gray, flow))
|
cv2.imshow('flow', draw_flow(gray, flow))
|
||||||
|
@ -24,7 +24,7 @@ def find_squares(img):
|
|||||||
bin = cv2.dilate(bin, None)
|
bin = cv2.dilate(bin, None)
|
||||||
else:
|
else:
|
||||||
retval, bin = cv2.threshold(gray, thrs, 255, cv2.THRESH_BINARY)
|
retval, bin = cv2.threshold(gray, thrs, 255, cv2.THRESH_BINARY)
|
||||||
contours, hierarchy = cv2.findContours(bin, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)
|
bin, contours, hierarchy = cv2.findContours(bin, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)
|
||||||
for cnt in contours:
|
for cnt in contours:
|
||||||
cnt_len = cv2.arcLength(cnt, True)
|
cnt_len = cv2.arcLength(cnt, True)
|
||||||
cnt = cv2.approxPolyDP(cnt, 0.02*cnt_len, True)
|
cnt = cv2.approxPolyDP(cnt, 0.02*cnt_len, True)
|
||||||
|
Loading…
Reference in New Issue
Block a user