001
002//
003// This file is auto-generated. Please don't modify it!
004//
005package org.opencv.video;
006
007import java.util.ArrayList;
008import java.util.List;
009import org.opencv.core.Mat;
010import org.opencv.core.MatOfByte;
011import org.opencv.core.MatOfFloat;
012import org.opencv.core.MatOfPoint2f;
013import org.opencv.core.Rect;
014import org.opencv.core.RotatedRect;
015import org.opencv.core.Size;
016import org.opencv.core.TermCriteria;
017import org.opencv.utils.Converters;
018
019public class Video {
020
021    private static final int
022            CV_LKFLOW_INITIAL_GUESSES = 4,
023            CV_LKFLOW_GET_MIN_EIGENVALS = 8;
024
025
026    public static final int
027            OPTFLOW_USE_INITIAL_FLOW = 4,
028            OPTFLOW_LK_GET_MIN_EIGENVALS = 8,
029            OPTFLOW_FARNEBACK_GAUSSIAN = 256,
030            MOTION_TRANSLATION = 0,
031            MOTION_EUCLIDEAN = 1,
032            MOTION_AFFINE = 2,
033            MOTION_HOMOGRAPHY = 3;
034
035
036    //
037    // C++:  Mat estimateRigidTransform(Mat src, Mat dst, bool fullAffine)
038    //
039
040    //javadoc: estimateRigidTransform(src, dst, fullAffine)
041    public static Mat estimateRigidTransform(Mat src, Mat dst, boolean fullAffine)
042    {
043        
044        Mat retVal = new Mat(estimateRigidTransform_0(src.nativeObj, dst.nativeObj, fullAffine));
045        
046        return retVal;
047    }
048
049
050    //
051    // C++:  Ptr_BackgroundSubtractorKNN createBackgroundSubtractorKNN(int history = 500, double dist2Threshold = 400.0, bool detectShadows = true)
052    //
053
054    //javadoc: createBackgroundSubtractorKNN(history, dist2Threshold, detectShadows)
055    public static BackgroundSubtractorKNN createBackgroundSubtractorKNN(int history, double dist2Threshold, boolean detectShadows)
056    {
057        
058        BackgroundSubtractorKNN retVal = new BackgroundSubtractorKNN(createBackgroundSubtractorKNN_0(history, dist2Threshold, detectShadows));
059        
060        return retVal;
061    }
062
063    //javadoc: createBackgroundSubtractorKNN()
064    public static BackgroundSubtractorKNN createBackgroundSubtractorKNN()
065    {
066        
067        BackgroundSubtractorKNN retVal = new BackgroundSubtractorKNN(createBackgroundSubtractorKNN_1());
068        
069        return retVal;
070    }
071
072
073    //
074    // C++:  Ptr_BackgroundSubtractorMOG2 createBackgroundSubtractorMOG2(int history = 500, double varThreshold = 16, bool detectShadows = true)
075    //
076
077    //javadoc: createBackgroundSubtractorMOG2(history, varThreshold, detectShadows)
078    public static BackgroundSubtractorMOG2 createBackgroundSubtractorMOG2(int history, double varThreshold, boolean detectShadows)
079    {
080        
081        BackgroundSubtractorMOG2 retVal = new BackgroundSubtractorMOG2(createBackgroundSubtractorMOG2_0(history, varThreshold, detectShadows));
082        
083        return retVal;
084    }
085
086    //javadoc: createBackgroundSubtractorMOG2()
087    public static BackgroundSubtractorMOG2 createBackgroundSubtractorMOG2()
088    {
089        
090        BackgroundSubtractorMOG2 retVal = new BackgroundSubtractorMOG2(createBackgroundSubtractorMOG2_1());
091        
092        return retVal;
093    }
094
095
096    //
097    // C++:  Ptr_DualTVL1OpticalFlow createOptFlow_DualTVL1()
098    //
099
100    //javadoc: createOptFlow_DualTVL1()
101    public static DualTVL1OpticalFlow createOptFlow_DualTVL1()
102    {
103        
104        DualTVL1OpticalFlow retVal = new DualTVL1OpticalFlow(createOptFlow_DualTVL1_0());
105        
106        return retVal;
107    }
108
109
110    //
111    // C++:  RotatedRect CamShift(Mat probImage, Rect& window, TermCriteria criteria)
112    //
113
114    //javadoc: CamShift(probImage, window, criteria)
115    public static RotatedRect CamShift(Mat probImage, Rect window, TermCriteria criteria)
116    {
117        double[] window_out = new double[4];
118        RotatedRect retVal = new RotatedRect(CamShift_0(probImage.nativeObj, window.x, window.y, window.width, window.height, window_out, criteria.type, criteria.maxCount, criteria.epsilon));
119        if(window!=null){ window.x = (int)window_out[0]; window.y = (int)window_out[1]; window.width = (int)window_out[2]; window.height = (int)window_out[3]; } 
120        return retVal;
121    }
122
123
124    //
125    // C++:  double findTransformECC(Mat templateImage, Mat inputImage, Mat& warpMatrix, int motionType = MOTION_AFFINE, TermCriteria criteria = TermCriteria(TermCriteria::COUNT+TermCriteria::EPS, 50, 0.001), Mat inputMask = Mat())
126    //
127
128    //javadoc: findTransformECC(templateImage, inputImage, warpMatrix, motionType, criteria, inputMask)
129    public static double findTransformECC(Mat templateImage, Mat inputImage, Mat warpMatrix, int motionType, TermCriteria criteria, Mat inputMask)
130    {
131        
132        double retVal = findTransformECC_0(templateImage.nativeObj, inputImage.nativeObj, warpMatrix.nativeObj, motionType, criteria.type, criteria.maxCount, criteria.epsilon, inputMask.nativeObj);
133        
134        return retVal;
135    }
136
137    //javadoc: findTransformECC(templateImage, inputImage, warpMatrix, motionType)
138    public static double findTransformECC(Mat templateImage, Mat inputImage, Mat warpMatrix, int motionType)
139    {
140        
141        double retVal = findTransformECC_1(templateImage.nativeObj, inputImage.nativeObj, warpMatrix.nativeObj, motionType);
142        
143        return retVal;
144    }
145
146    //javadoc: findTransformECC(templateImage, inputImage, warpMatrix)
147    public static double findTransformECC(Mat templateImage, Mat inputImage, Mat warpMatrix)
148    {
149        
150        double retVal = findTransformECC_2(templateImage.nativeObj, inputImage.nativeObj, warpMatrix.nativeObj);
151        
152        return retVal;
153    }
154
155
156    //
157    // C++:  int buildOpticalFlowPyramid(Mat img, vector_Mat& pyramid, Size winSize, int maxLevel, bool withDerivatives = true, int pyrBorder = BORDER_REFLECT_101, int derivBorder = BORDER_CONSTANT, bool tryReuseInputImage = true)
158    //
159
160    //javadoc: buildOpticalFlowPyramid(img, pyramid, winSize, maxLevel, withDerivatives, pyrBorder, derivBorder, tryReuseInputImage)
161    public static int buildOpticalFlowPyramid(Mat img, List<Mat> pyramid, Size winSize, int maxLevel, boolean withDerivatives, int pyrBorder, int derivBorder, boolean tryReuseInputImage)
162    {
163        Mat pyramid_mat = new Mat();
164        int retVal = buildOpticalFlowPyramid_0(img.nativeObj, pyramid_mat.nativeObj, winSize.width, winSize.height, maxLevel, withDerivatives, pyrBorder, derivBorder, tryReuseInputImage);
165        Converters.Mat_to_vector_Mat(pyramid_mat, pyramid);
166        pyramid_mat.release();
167        return retVal;
168    }
169
170    //javadoc: buildOpticalFlowPyramid(img, pyramid, winSize, maxLevel)
171    public static int buildOpticalFlowPyramid(Mat img, List<Mat> pyramid, Size winSize, int maxLevel)
172    {
173        Mat pyramid_mat = new Mat();
174        int retVal = buildOpticalFlowPyramid_1(img.nativeObj, pyramid_mat.nativeObj, winSize.width, winSize.height, maxLevel);
175        Converters.Mat_to_vector_Mat(pyramid_mat, pyramid);
176        pyramid_mat.release();
177        return retVal;
178    }
179
180
181    //
182    // C++:  int meanShift(Mat probImage, Rect& window, TermCriteria criteria)
183    //
184
185    //javadoc: meanShift(probImage, window, criteria)
186    public static int meanShift(Mat probImage, Rect window, TermCriteria criteria)
187    {
188        double[] window_out = new double[4];
189        int retVal = meanShift_0(probImage.nativeObj, window.x, window.y, window.width, window.height, window_out, criteria.type, criteria.maxCount, criteria.epsilon);
190        if(window!=null){ window.x = (int)window_out[0]; window.y = (int)window_out[1]; window.width = (int)window_out[2]; window.height = (int)window_out[3]; } 
191        return retVal;
192    }
193
194
195    //
196    // C++:  void calcOpticalFlowFarneback(Mat prev, Mat next, Mat& flow, double pyr_scale, int levels, int winsize, int iterations, int poly_n, double poly_sigma, int flags)
197    //
198
199    //javadoc: calcOpticalFlowFarneback(prev, next, flow, pyr_scale, levels, winsize, iterations, poly_n, poly_sigma, flags)
200    public static void calcOpticalFlowFarneback(Mat prev, Mat next, Mat flow, double pyr_scale, int levels, int winsize, int iterations, int poly_n, double poly_sigma, int flags)
201    {
202        
203        calcOpticalFlowFarneback_0(prev.nativeObj, next.nativeObj, flow.nativeObj, pyr_scale, levels, winsize, iterations, poly_n, poly_sigma, flags);
204        
205        return;
206    }
207
208
209    //
210    // C++:  void calcOpticalFlowPyrLK(Mat prevImg, Mat nextImg, vector_Point2f prevPts, vector_Point2f& nextPts, vector_uchar& status, vector_float& 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)
211    //
212
213    //javadoc: calcOpticalFlowPyrLK(prevImg, nextImg, prevPts, nextPts, status, err, winSize, maxLevel, criteria, flags, minEigThreshold)
214    public static void calcOpticalFlowPyrLK(Mat prevImg, Mat nextImg, MatOfPoint2f prevPts, MatOfPoint2f nextPts, MatOfByte status, MatOfFloat err, Size winSize, int maxLevel, TermCriteria criteria, int flags, double minEigThreshold)
215    {
216        Mat prevPts_mat = prevPts;
217        Mat nextPts_mat = nextPts;
218        Mat status_mat = status;
219        Mat err_mat = err;
220        calcOpticalFlowPyrLK_0(prevImg.nativeObj, nextImg.nativeObj, prevPts_mat.nativeObj, nextPts_mat.nativeObj, status_mat.nativeObj, err_mat.nativeObj, winSize.width, winSize.height, maxLevel, criteria.type, criteria.maxCount, criteria.epsilon, flags, minEigThreshold);
221        
222        return;
223    }
224
225    //javadoc: calcOpticalFlowPyrLK(prevImg, nextImg, prevPts, nextPts, status, err, winSize, maxLevel)
226    public static void calcOpticalFlowPyrLK(Mat prevImg, Mat nextImg, MatOfPoint2f prevPts, MatOfPoint2f nextPts, MatOfByte status, MatOfFloat err, Size winSize, int maxLevel)
227    {
228        Mat prevPts_mat = prevPts;
229        Mat nextPts_mat = nextPts;
230        Mat status_mat = status;
231        Mat err_mat = err;
232        calcOpticalFlowPyrLK_1(prevImg.nativeObj, nextImg.nativeObj, prevPts_mat.nativeObj, nextPts_mat.nativeObj, status_mat.nativeObj, err_mat.nativeObj, winSize.width, winSize.height, maxLevel);
233        
234        return;
235    }
236
237    //javadoc: calcOpticalFlowPyrLK(prevImg, nextImg, prevPts, nextPts, status, err)
238    public static void calcOpticalFlowPyrLK(Mat prevImg, Mat nextImg, MatOfPoint2f prevPts, MatOfPoint2f nextPts, MatOfByte status, MatOfFloat err)
239    {
240        Mat prevPts_mat = prevPts;
241        Mat nextPts_mat = nextPts;
242        Mat status_mat = status;
243        Mat err_mat = err;
244        calcOpticalFlowPyrLK_2(prevImg.nativeObj, nextImg.nativeObj, prevPts_mat.nativeObj, nextPts_mat.nativeObj, status_mat.nativeObj, err_mat.nativeObj);
245        
246        return;
247    }
248
249
250
251
252    // C++:  Mat estimateRigidTransform(Mat src, Mat dst, bool fullAffine)
253    private static native long estimateRigidTransform_0(long src_nativeObj, long dst_nativeObj, boolean fullAffine);
254
255    // C++:  Ptr_BackgroundSubtractorKNN createBackgroundSubtractorKNN(int history = 500, double dist2Threshold = 400.0, bool detectShadows = true)
256    private static native long createBackgroundSubtractorKNN_0(int history, double dist2Threshold, boolean detectShadows);
257    private static native long createBackgroundSubtractorKNN_1();
258
259    // C++:  Ptr_BackgroundSubtractorMOG2 createBackgroundSubtractorMOG2(int history = 500, double varThreshold = 16, bool detectShadows = true)
260    private static native long createBackgroundSubtractorMOG2_0(int history, double varThreshold, boolean detectShadows);
261    private static native long createBackgroundSubtractorMOG2_1();
262
263    // C++:  Ptr_DualTVL1OpticalFlow createOptFlow_DualTVL1()
264    private static native long createOptFlow_DualTVL1_0();
265
266    // C++:  RotatedRect CamShift(Mat probImage, Rect& window, TermCriteria criteria)
267    private static native double[] CamShift_0(long probImage_nativeObj, int window_x, int window_y, int window_width, int window_height, double[] window_out, int criteria_type, int criteria_maxCount, double criteria_epsilon);
268
269    // C++:  double findTransformECC(Mat templateImage, Mat inputImage, Mat& warpMatrix, int motionType = MOTION_AFFINE, TermCriteria criteria = TermCriteria(TermCriteria::COUNT+TermCriteria::EPS, 50, 0.001), Mat inputMask = Mat())
270    private static native double findTransformECC_0(long templateImage_nativeObj, long inputImage_nativeObj, long warpMatrix_nativeObj, int motionType, int criteria_type, int criteria_maxCount, double criteria_epsilon, long inputMask_nativeObj);
271    private static native double findTransformECC_1(long templateImage_nativeObj, long inputImage_nativeObj, long warpMatrix_nativeObj, int motionType);
272    private static native double findTransformECC_2(long templateImage_nativeObj, long inputImage_nativeObj, long warpMatrix_nativeObj);
273
274    // C++:  int buildOpticalFlowPyramid(Mat img, vector_Mat& pyramid, Size winSize, int maxLevel, bool withDerivatives = true, int pyrBorder = BORDER_REFLECT_101, int derivBorder = BORDER_CONSTANT, bool tryReuseInputImage = true)
275    private static native int buildOpticalFlowPyramid_0(long img_nativeObj, long pyramid_mat_nativeObj, double winSize_width, double winSize_height, int maxLevel, boolean withDerivatives, int pyrBorder, int derivBorder, boolean tryReuseInputImage);
276    private static native int buildOpticalFlowPyramid_1(long img_nativeObj, long pyramid_mat_nativeObj, double winSize_width, double winSize_height, int maxLevel);
277
278    // C++:  int meanShift(Mat probImage, Rect& window, TermCriteria criteria)
279    private static native int meanShift_0(long probImage_nativeObj, int window_x, int window_y, int window_width, int window_height, double[] window_out, int criteria_type, int criteria_maxCount, double criteria_epsilon);
280
281    // C++:  void calcOpticalFlowFarneback(Mat prev, Mat next, Mat& flow, double pyr_scale, int levels, int winsize, int iterations, int poly_n, double poly_sigma, int flags)
282    private static native void calcOpticalFlowFarneback_0(long prev_nativeObj, long next_nativeObj, long flow_nativeObj, double pyr_scale, int levels, int winsize, int iterations, int poly_n, double poly_sigma, int flags);
283
284    // C++:  void calcOpticalFlowPyrLK(Mat prevImg, Mat nextImg, vector_Point2f prevPts, vector_Point2f& nextPts, vector_uchar& status, vector_float& 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)
285    private static native void calcOpticalFlowPyrLK_0(long prevImg_nativeObj, long nextImg_nativeObj, long prevPts_mat_nativeObj, long nextPts_mat_nativeObj, long status_mat_nativeObj, long err_mat_nativeObj, double winSize_width, double winSize_height, int maxLevel, int criteria_type, int criteria_maxCount, double criteria_epsilon, int flags, double minEigThreshold);
286    private static native void calcOpticalFlowPyrLK_1(long prevImg_nativeObj, long nextImg_nativeObj, long prevPts_mat_nativeObj, long nextPts_mat_nativeObj, long status_mat_nativeObj, long err_mat_nativeObj, double winSize_width, double winSize_height, int maxLevel);
287    private static native void calcOpticalFlowPyrLK_2(long prevImg_nativeObj, long nextImg_nativeObj, long prevPts_mat_nativeObj, long nextPts_mat_nativeObj, long status_mat_nativeObj, long err_mat_nativeObj);
288
289}