Update to 2.0.0 tree from current Fremantle build
[opencv] / interfaces / swig / octave / cvshadow.cpp
1 #include <cxcore.h>
2 #include <cv.h>
3 #include <stdio.h>
4 #include "cvshadow.h"
5
6 CvArr * cvCvtSeqToArray_Shadow( const CvSeq* seq, CvArr * elements, CvSlice slice){
7   CvMat stub, *mat=(CvMat *)elements;
8   if(!CV_IS_MAT(mat)){
9     mat = cvGetMat(elements, &stub);
10   }
11   cvCvtSeqToArray( seq, mat->data.ptr, slice );
12   return elements;
13 }
14
15 double cvArcLength_Shadow( const CvSeq * seq, CvSlice slice, int is_closed){
16   return cvArcLength( seq, slice, is_closed );
17 }
18 double cvArcLength_Shadow( const CvArr * arr, CvSlice slice, int is_closed){
19   return cvArcLength( arr, slice, is_closed );
20 }
21
22 CvTypedSeq<CvRect> * cvHaarDetectObjects_Shadow( const CvArr* image, CvHaarClassifierCascade* cascade,
23                                                  CvMemStorage* storage, double scale_factor, int min_neighbors, int flags,
24                                                  CvSize min_size )
25 {
26   return (CvTypedSeq<CvRect> *) cvHaarDetectObjects( image, cascade, storage, scale_factor,
27                                                      min_neighbors, flags, min_size);
28 }
29
30 CvTypedSeq<CvConnectedComp> *  cvSegmentMotion_Shadow( const CvArr* mhi, CvArr* seg_mask, CvMemStorage* storage,
31                                                        double timestamp, double seg_thresh ){
32   return (CvTypedSeq<CvConnectedComp> *) cvSegmentMotion( mhi, seg_mask, storage, timestamp, seg_thresh );
33 }
34
35 CvTypedSeq<CvPoint> * cvApproxPoly_Shadow( const void* src_seq, int header_size, CvMemStorage* storage,
36                                            int method, double parameter, int parameter2)
37 {
38   return (CvTypedSeq<CvPoint> *) cvApproxPoly( src_seq, header_size, storage, method, parameter, parameter2 );
39 }
40
41 // Always return a new Mat of indices
42 CvMat * cvConvexHull2_Shadow( const CvArr * points, int orientation, int return_points){
43   CvMat * hull;
44   CvMat * points_mat=(CvMat *) points;
45   CvSeq * points_seq=(CvSeq *) points;
46   int npoints, type;
47
48   CV_FUNCNAME("cvConvexHull2");
49
50   __BEGIN__;
51
52   if(CV_IS_MAT(points_mat)){
53     npoints = MAX(points_mat->rows, points_mat->cols);
54     type = return_points ? points_mat->type : CV_32S;
55   }
56   else if(CV_IS_SEQ(points_seq)){
57     npoints = points_seq->total;
58     type = return_points ? CV_SEQ_ELTYPE(points_seq) : 1;
59   }
60   else{
61     CV_ERROR(CV_StsBadArg, "points must be a CvSeq or CvMat");
62   }
63   CV_CALL( hull=cvCreateMat(1,npoints,type) );
64   CV_CALL( cvConvexHull2(points, hull, orientation, return_points) );
65         
66   __END__;
67   return hull;
68 }
69 std::vector<CvPoint> cvSnakeImage_Shadow( const CvMat * image, std::vector<CvPoint>  points,
70                                           std::vector<float> alpha, std::vector<float> beta, 
71                                           std::vector<float> gamma, 
72                                           CvSize win, CvTermCriteria criteria, int calc_gradient ){
73   IplImage ipl_stub;
74   CV_FUNCNAME("cvSnakeImage_Shadow");
75         
76   __BEGIN__;
77
78   cvSnakeImage( cvGetImage(image, &ipl_stub), &(points[0]), points.size(), 
79                 &((alpha)[0]), &((beta)[0]), &((gamma)[0]), 
80                 (alpha.size()>1 && beta.size()>1 && gamma.size()>1 ? CV_ARRAY : CV_VALUE), 
81                 win, criteria, calc_gradient );
82
83   __END__;
84   return points;
85 }