mirror of https://github.com/opencv/opencv.git
Open Source Computer Vision Library
https://opencv.org/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
83 lines
3.0 KiB
83 lines
3.0 KiB
#include <cxcore.h> |
|
#include <cv.h> |
|
#include <stdio.h> |
|
#include "cvshadow.h" |
|
|
|
CvArr * cvCvtSeqToArray_Shadow( const CvSeq* seq, CvArr * elements, CvSlice slice){ |
|
CvMat stub, *mat=(CvMat *)elements; |
|
if(!CV_IS_MAT(mat)){ |
|
mat = cvGetMat(elements, &stub); |
|
} |
|
cvCvtSeqToArray( seq, mat->data.ptr, slice ); |
|
return elements; |
|
} |
|
|
|
double cvArcLength_Shadow( const CvSeq * seq, CvSlice slice, int is_closed){ |
|
return cvArcLength( seq, slice, is_closed ); |
|
} |
|
double cvArcLength_Shadow( const CvArr * arr, CvSlice slice, int is_closed){ |
|
return cvArcLength( arr, slice, is_closed ); |
|
} |
|
|
|
void cvMoments_Shadow( const CvSeq * seq, CvMoments * moments, int binary ){ |
|
cvMoments( seq, moments, binary ); |
|
} |
|
|
|
void cvMoments_Shadow( const CvArr * seq, CvMoments * moments, int binary ){ |
|
cvMoments( seq, moments, binary ); |
|
} |
|
|
|
|
|
CvTypedSeq<CvRect> * cvHaarDetectObjects_Shadow( const CvArr* image, CvHaarClassifierCascade* cascade, |
|
CvMemStorage* storage, double scale_factor, int min_neighbors, int flags, |
|
CvSize min_size ) |
|
{ |
|
return (CvTypedSeq<CvRect> *) cvHaarDetectObjects( image, cascade, storage, scale_factor, |
|
min_neighbors, flags, min_size); |
|
} |
|
|
|
CvTypedSeq<CvConnectedComp> * cvSegmentMotion_Shadow( const CvArr* mhi, CvArr* seg_mask, CvMemStorage* storage, |
|
double timestamp, double seg_thresh ){ |
|
return (CvTypedSeq<CvConnectedComp> *) cvSegmentMotion( mhi, seg_mask, storage, timestamp, seg_thresh ); |
|
} |
|
|
|
CvTypedSeq<CvPoint> * cvApproxPoly_Shadow( const void* src_seq, int header_size, CvMemStorage* storage, |
|
int method, double parameter, int parameter2) |
|
{ |
|
return (CvTypedSeq<CvPoint> *) cvApproxPoly( src_seq, header_size, storage, method, parameter, parameter2 ); |
|
} |
|
|
|
// Always return a new Mat of indices |
|
CvMat * cvConvexHull2_Shadow( const CvArr * points, int orientation, int return_points){ |
|
CvMat * hull=0; |
|
CvMat * points_mat=(CvMat *) points; |
|
CvSeq * points_seq=(CvSeq *) points; |
|
int npoints, type; |
|
|
|
if(CV_IS_MAT(points_mat)){ |
|
npoints = MAX(points_mat->rows, points_mat->cols); |
|
type = return_points ? points_mat->type : CV_32S; |
|
} |
|
else if(CV_IS_SEQ(points_seq)){ |
|
npoints = points_seq->total; |
|
type = return_points ? CV_SEQ_ELTYPE(points_seq) : 1; |
|
} |
|
else{ |
|
CV_Error(CV_StsBadArg, "points must be a CvSeq or CvMat"); |
|
} |
|
hull=cvCreateMat(1,npoints,type); |
|
cvConvexHull2(points, hull, orientation, return_points); |
|
|
|
return hull; |
|
} |
|
std::vector<CvPoint> cvSnakeImage_Shadow( const CvMat * image, std::vector<CvPoint> points, |
|
std::vector<float> alpha, std::vector<float> beta, |
|
std::vector<float> gamma, |
|
CvSize win, CvTermCriteria criteria, int calc_gradient ){ |
|
IplImage ipl_stub; |
|
cvSnakeImage( cvGetImage(image, &ipl_stub), &(points[0]), points.size(), |
|
&((alpha)[0]), &((beta)[0]), &((gamma)[0]), |
|
(alpha.size()>1 && beta.size()>1 && gamma.size()>1 ? CV_ARRAY : CV_VALUE), |
|
win, criteria, calc_gradient ); |
|
return points; |
|
}
|
|
|