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}