X-Git-Url: https://vcs.maemo.org/git/?a=blobdiff_plain;f=interfaces%2Fswig%2Foctave%2Fcvshadow.cpp;fp=interfaces%2Fswig%2Foctave%2Fcvshadow.cpp;h=b24c86ab45dad1b2feb72d4a0c0f6c4df32322ec;hb=e4c14cdbdf2fe805e79cd96ded236f57e7b89060;hp=0000000000000000000000000000000000000000;hpb=454138ff8a20f6edb9b65a910101403d8b520643;p=opencv diff --git a/interfaces/swig/octave/cvshadow.cpp b/interfaces/swig/octave/cvshadow.cpp new file mode 100644 index 0000000..b24c86a --- /dev/null +++ b/interfaces/swig/octave/cvshadow.cpp @@ -0,0 +1,85 @@ +#include +#include +#include +#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 ); +} + +CvTypedSeq * cvHaarDetectObjects_Shadow( const CvArr* image, CvHaarClassifierCascade* cascade, + CvMemStorage* storage, double scale_factor, int min_neighbors, int flags, + CvSize min_size ) +{ + return (CvTypedSeq *) cvHaarDetectObjects( image, cascade, storage, scale_factor, + min_neighbors, flags, min_size); +} + +CvTypedSeq * cvSegmentMotion_Shadow( const CvArr* mhi, CvArr* seg_mask, CvMemStorage* storage, + double timestamp, double seg_thresh ){ + return (CvTypedSeq *) cvSegmentMotion( mhi, seg_mask, storage, timestamp, seg_thresh ); +} + +CvTypedSeq * cvApproxPoly_Shadow( const void* src_seq, int header_size, CvMemStorage* storage, + int method, double parameter, int parameter2) +{ + return (CvTypedSeq *) 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; + CvMat * points_mat=(CvMat *) points; + CvSeq * points_seq=(CvSeq *) points; + int npoints, type; + + CV_FUNCNAME("cvConvexHull2"); + + __BEGIN__; + + 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"); + } + CV_CALL( hull=cvCreateMat(1,npoints,type) ); + CV_CALL( cvConvexHull2(points, hull, orientation, return_points) ); + + __END__; + return hull; +} +std::vector cvSnakeImage_Shadow( const CvMat * image, std::vector points, + std::vector alpha, std::vector beta, + std::vector gamma, + CvSize win, CvTermCriteria criteria, int calc_gradient ){ + IplImage ipl_stub; + CV_FUNCNAME("cvSnakeImage_Shadow"); + + __BEGIN__; + + 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 ); + + __END__; + return points; +}