123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610 |
-
- using OpenCVForUnity.CoreModule;
- using OpenCVForUnity.UtilsModule;
- using System;
- using System.Collections.Generic;
- using System.Runtime.InteropServices;
- namespace OpenCVForUnity.VideoModule
- {
- // C++: class Video
- //javadoc: Video
- public class Video
- {
- private const int CV_LKFLOW_INITIAL_GUESSES = 4;
- private const int CV_LKFLOW_GET_MIN_EIGENVALS = 8;
- // C++: enum <unnamed>
- public const int OPTFLOW_USE_INITIAL_FLOW = 4;
- public const int OPTFLOW_LK_GET_MIN_EIGENVALS = 8;
- public const int OPTFLOW_FARNEBACK_GAUSSIAN = 256;
- public const int MOTION_TRANSLATION = 0;
- public const int MOTION_EUCLIDEAN = 1;
- public const int MOTION_AFFINE = 2;
- public const int MOTION_HOMOGRAPHY = 3;
- //
- // C++: Mat cv::readOpticalFlow(String path)
- //
- //javadoc: readOpticalFlow(path)
- public static Mat readOpticalFlow (string path)
- {
- #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
-
- Mat retVal = new Mat(video_Video_readOpticalFlow_10(path));
-
- return retVal;
- #else
- return null;
- #endif
- }
- //
- // C++: Ptr_BackgroundSubtractorKNN cv::createBackgroundSubtractorKNN(int history = 500, double dist2Threshold = 400.0, bool detectShadows = true)
- //
- //javadoc: createBackgroundSubtractorKNN(history, dist2Threshold, detectShadows)
- public static BackgroundSubtractorKNN createBackgroundSubtractorKNN (int history, double dist2Threshold, bool detectShadows)
- {
- #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
-
- BackgroundSubtractorKNN retVal = BackgroundSubtractorKNN.__fromPtr__(video_Video_createBackgroundSubtractorKNN_10(history, dist2Threshold, detectShadows));
-
- return retVal;
- #else
- return null;
- #endif
- }
- //javadoc: createBackgroundSubtractorKNN(history, dist2Threshold)
- public static BackgroundSubtractorKNN createBackgroundSubtractorKNN (int history, double dist2Threshold)
- {
- #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
-
- BackgroundSubtractorKNN retVal = BackgroundSubtractorKNN.__fromPtr__(video_Video_createBackgroundSubtractorKNN_11(history, dist2Threshold));
-
- return retVal;
- #else
- return null;
- #endif
- }
- //javadoc: createBackgroundSubtractorKNN(history)
- public static BackgroundSubtractorKNN createBackgroundSubtractorKNN (int history)
- {
- #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
-
- BackgroundSubtractorKNN retVal = BackgroundSubtractorKNN.__fromPtr__(video_Video_createBackgroundSubtractorKNN_12(history));
-
- return retVal;
- #else
- return null;
- #endif
- }
- //javadoc: createBackgroundSubtractorKNN()
- public static BackgroundSubtractorKNN createBackgroundSubtractorKNN ()
- {
- #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
-
- BackgroundSubtractorKNN retVal = BackgroundSubtractorKNN.__fromPtr__(video_Video_createBackgroundSubtractorKNN_13());
-
- return retVal;
- #else
- return null;
- #endif
- }
- //
- // C++: Ptr_BackgroundSubtractorMOG2 cv::createBackgroundSubtractorMOG2(int history = 500, double varThreshold = 16, bool detectShadows = true)
- //
- //javadoc: createBackgroundSubtractorMOG2(history, varThreshold, detectShadows)
- public static BackgroundSubtractorMOG2 createBackgroundSubtractorMOG2 (int history, double varThreshold, bool detectShadows)
- {
- #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
-
- BackgroundSubtractorMOG2 retVal = BackgroundSubtractorMOG2.__fromPtr__(video_Video_createBackgroundSubtractorMOG2_10(history, varThreshold, detectShadows));
-
- return retVal;
- #else
- return null;
- #endif
- }
- //javadoc: createBackgroundSubtractorMOG2(history, varThreshold)
- public static BackgroundSubtractorMOG2 createBackgroundSubtractorMOG2 (int history, double varThreshold)
- {
- #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
-
- BackgroundSubtractorMOG2 retVal = BackgroundSubtractorMOG2.__fromPtr__(video_Video_createBackgroundSubtractorMOG2_11(history, varThreshold));
-
- return retVal;
- #else
- return null;
- #endif
- }
- //javadoc: createBackgroundSubtractorMOG2(history)
- public static BackgroundSubtractorMOG2 createBackgroundSubtractorMOG2 (int history)
- {
- #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
-
- BackgroundSubtractorMOG2 retVal = BackgroundSubtractorMOG2.__fromPtr__(video_Video_createBackgroundSubtractorMOG2_12(history));
-
- return retVal;
- #else
- return null;
- #endif
- }
- //javadoc: createBackgroundSubtractorMOG2()
- public static BackgroundSubtractorMOG2 createBackgroundSubtractorMOG2 ()
- {
- #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
-
- BackgroundSubtractorMOG2 retVal = BackgroundSubtractorMOG2.__fromPtr__(video_Video_createBackgroundSubtractorMOG2_13());
-
- return retVal;
- #else
- return null;
- #endif
- }
- //
- // C++: RotatedRect cv::CamShift(Mat probImage, Rect& window, TermCriteria criteria)
- //
- //javadoc: CamShift(probImage, window, criteria)
- public static RotatedRect CamShift (Mat probImage, Rect window, TermCriteria criteria)
- {
- if (probImage != null) probImage.ThrowIfDisposed ();
- #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
- double[] window_out = new double[4];
- double[] tmpArray = new double[5];
- video_Video_CamShift_10(probImage.nativeObj, window.x, window.y, window.width, window.height, window_out, criteria.type, criteria.maxCount, criteria.epsilon, tmpArray);
- RotatedRect retVal = new RotatedRect (tmpArray);
- 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]; }
- return retVal;
- #else
- return null;
- #endif
- }
- //
- // C++: bool cv::writeOpticalFlow(String path, Mat flow)
- //
- //javadoc: writeOpticalFlow(path, flow)
- public static bool writeOpticalFlow (string path, Mat flow)
- {
- if (flow != null) flow.ThrowIfDisposed ();
- #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
-
- bool retVal = video_Video_writeOpticalFlow_10(path, flow.nativeObj);
-
- return retVal;
- #else
- return false;
- #endif
- }
- //
- // C++: double cv::findTransformECC(Mat templateImage, Mat inputImage, Mat& warpMatrix, int motionType = MOTION_AFFINE, TermCriteria criteria = TermCriteria(TermCriteria::COUNT+TermCriteria::EPS, 50, 0.001), Mat inputMask = Mat())
- //
- //javadoc: findTransformECC(templateImage, inputImage, warpMatrix, motionType, criteria, inputMask)
- public static double findTransformECC (Mat templateImage, Mat inputImage, Mat warpMatrix, int motionType, TermCriteria criteria, Mat inputMask)
- {
- if (templateImage != null) templateImage.ThrowIfDisposed ();
- if (inputImage != null) inputImage.ThrowIfDisposed ();
- if (warpMatrix != null) warpMatrix.ThrowIfDisposed ();
- if (inputMask != null) inputMask.ThrowIfDisposed ();
- #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
-
- double retVal = video_Video_findTransformECC_10(templateImage.nativeObj, inputImage.nativeObj, warpMatrix.nativeObj, motionType, criteria.type, criteria.maxCount, criteria.epsilon, inputMask.nativeObj);
-
- return retVal;
- #else
- return -1;
- #endif
- }
- //javadoc: findTransformECC(templateImage, inputImage, warpMatrix, motionType, criteria)
- public static double findTransformECC (Mat templateImage, Mat inputImage, Mat warpMatrix, int motionType, TermCriteria criteria)
- {
- if (templateImage != null) templateImage.ThrowIfDisposed ();
- if (inputImage != null) inputImage.ThrowIfDisposed ();
- if (warpMatrix != null) warpMatrix.ThrowIfDisposed ();
- #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
-
- double retVal = video_Video_findTransformECC_11(templateImage.nativeObj, inputImage.nativeObj, warpMatrix.nativeObj, motionType, criteria.type, criteria.maxCount, criteria.epsilon);
-
- return retVal;
- #else
- return -1;
- #endif
- }
- //javadoc: findTransformECC(templateImage, inputImage, warpMatrix, motionType)
- public static double findTransformECC (Mat templateImage, Mat inputImage, Mat warpMatrix, int motionType)
- {
- if (templateImage != null) templateImage.ThrowIfDisposed ();
- if (inputImage != null) inputImage.ThrowIfDisposed ();
- if (warpMatrix != null) warpMatrix.ThrowIfDisposed ();
- #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
-
- double retVal = video_Video_findTransformECC_12(templateImage.nativeObj, inputImage.nativeObj, warpMatrix.nativeObj, motionType);
-
- return retVal;
- #else
- return -1;
- #endif
- }
- //javadoc: findTransformECC(templateImage, inputImage, warpMatrix)
- public static double findTransformECC (Mat templateImage, Mat inputImage, Mat warpMatrix)
- {
- if (templateImage != null) templateImage.ThrowIfDisposed ();
- if (inputImage != null) inputImage.ThrowIfDisposed ();
- if (warpMatrix != null) warpMatrix.ThrowIfDisposed ();
- #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
-
- double retVal = video_Video_findTransformECC_13(templateImage.nativeObj, inputImage.nativeObj, warpMatrix.nativeObj);
-
- return retVal;
- #else
- return -1;
- #endif
- }
- //
- // C++: int cv::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)
- //
- //javadoc: buildOpticalFlowPyramid(img, pyramid, winSize, maxLevel, withDerivatives, pyrBorder, derivBorder, tryReuseInputImage)
- public static int buildOpticalFlowPyramid (Mat img, List<Mat> pyramid, Size winSize, int maxLevel, bool withDerivatives, int pyrBorder, int derivBorder, bool tryReuseInputImage)
- {
- if (img != null) img.ThrowIfDisposed ();
- #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
- Mat pyramid_mat = new Mat();
- int retVal = video_Video_buildOpticalFlowPyramid_10(img.nativeObj, pyramid_mat.nativeObj, winSize.width, winSize.height, maxLevel, withDerivatives, pyrBorder, derivBorder, tryReuseInputImage);
- Converters.Mat_to_vector_Mat(pyramid_mat, pyramid);
- pyramid_mat.release();
- return retVal;
- #else
- return -1;
- #endif
- }
- //javadoc: buildOpticalFlowPyramid(img, pyramid, winSize, maxLevel, withDerivatives, pyrBorder, derivBorder)
- public static int buildOpticalFlowPyramid (Mat img, List<Mat> pyramid, Size winSize, int maxLevel, bool withDerivatives, int pyrBorder, int derivBorder)
- {
- if (img != null) img.ThrowIfDisposed ();
- #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
- Mat pyramid_mat = new Mat();
- int retVal = video_Video_buildOpticalFlowPyramid_11(img.nativeObj, pyramid_mat.nativeObj, winSize.width, winSize.height, maxLevel, withDerivatives, pyrBorder, derivBorder);
- Converters.Mat_to_vector_Mat(pyramid_mat, pyramid);
- pyramid_mat.release();
- return retVal;
- #else
- return -1;
- #endif
- }
- //javadoc: buildOpticalFlowPyramid(img, pyramid, winSize, maxLevel, withDerivatives, pyrBorder)
- public static int buildOpticalFlowPyramid (Mat img, List<Mat> pyramid, Size winSize, int maxLevel, bool withDerivatives, int pyrBorder)
- {
- if (img != null) img.ThrowIfDisposed ();
- #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
- Mat pyramid_mat = new Mat();
- int retVal = video_Video_buildOpticalFlowPyramid_12(img.nativeObj, pyramid_mat.nativeObj, winSize.width, winSize.height, maxLevel, withDerivatives, pyrBorder);
- Converters.Mat_to_vector_Mat(pyramid_mat, pyramid);
- pyramid_mat.release();
- return retVal;
- #else
- return -1;
- #endif
- }
- //javadoc: buildOpticalFlowPyramid(img, pyramid, winSize, maxLevel, withDerivatives)
- public static int buildOpticalFlowPyramid (Mat img, List<Mat> pyramid, Size winSize, int maxLevel, bool withDerivatives)
- {
- if (img != null) img.ThrowIfDisposed ();
- #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
- Mat pyramid_mat = new Mat();
- int retVal = video_Video_buildOpticalFlowPyramid_13(img.nativeObj, pyramid_mat.nativeObj, winSize.width, winSize.height, maxLevel, withDerivatives);
- Converters.Mat_to_vector_Mat(pyramid_mat, pyramid);
- pyramid_mat.release();
- return retVal;
- #else
- return -1;
- #endif
- }
- //javadoc: buildOpticalFlowPyramid(img, pyramid, winSize, maxLevel)
- public static int buildOpticalFlowPyramid (Mat img, List<Mat> pyramid, Size winSize, int maxLevel)
- {
- if (img != null) img.ThrowIfDisposed ();
- #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
- Mat pyramid_mat = new Mat();
- int retVal = video_Video_buildOpticalFlowPyramid_14(img.nativeObj, pyramid_mat.nativeObj, winSize.width, winSize.height, maxLevel);
- Converters.Mat_to_vector_Mat(pyramid_mat, pyramid);
- pyramid_mat.release();
- return retVal;
- #else
- return -1;
- #endif
- }
- //
- // C++: int cv::meanShift(Mat probImage, Rect& window, TermCriteria criteria)
- //
- //javadoc: meanShift(probImage, window, criteria)
- public static int meanShift (Mat probImage, Rect window, TermCriteria criteria)
- {
- if (probImage != null) probImage.ThrowIfDisposed ();
- #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
- double[] window_out = new double[4];
- int retVal = video_Video_meanShift_10(probImage.nativeObj, window.x, window.y, window.width, window.height, window_out, criteria.type, criteria.maxCount, criteria.epsilon);
- 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]; }
- return retVal;
- #else
- return -1;
- #endif
- }
- //
- // C++: void cv::calcOpticalFlowFarneback(Mat prev, Mat next, Mat& flow, double pyr_scale, int levels, int winsize, int iterations, int poly_n, double poly_sigma, int flags)
- //
- //javadoc: calcOpticalFlowFarneback(prev, next, flow, pyr_scale, levels, winsize, iterations, poly_n, poly_sigma, flags)
- 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)
- {
- if (prev != null) prev.ThrowIfDisposed ();
- if (next != null) next.ThrowIfDisposed ();
- if (flow != null) flow.ThrowIfDisposed ();
- #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
-
- video_Video_calcOpticalFlowFarneback_10(prev.nativeObj, next.nativeObj, flow.nativeObj, pyr_scale, levels, winsize, iterations, poly_n, poly_sigma, flags);
-
- return;
- #else
- return;
- #endif
- }
- //
- // C++: void cv::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)
- //
- //javadoc: calcOpticalFlowPyrLK(prevImg, nextImg, prevPts, nextPts, status, err, winSize, maxLevel, criteria, flags, minEigThreshold)
- 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)
- {
- if (prevImg != null) prevImg.ThrowIfDisposed ();
- if (nextImg != null) nextImg.ThrowIfDisposed ();
- if (prevPts != null) prevPts.ThrowIfDisposed ();
- if (nextPts != null) nextPts.ThrowIfDisposed ();
- if (status != null) status.ThrowIfDisposed ();
- if (err != null) err.ThrowIfDisposed ();
- #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
- Mat prevPts_mat = prevPts;
- Mat nextPts_mat = nextPts;
- Mat status_mat = status;
- Mat err_mat = err;
- video_Video_calcOpticalFlowPyrLK_10(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);
-
- return;
- #else
- return;
- #endif
- }
- //javadoc: calcOpticalFlowPyrLK(prevImg, nextImg, prevPts, nextPts, status, err, winSize, maxLevel, criteria, flags)
- public static void calcOpticalFlowPyrLK (Mat prevImg, Mat nextImg, MatOfPoint2f prevPts, MatOfPoint2f nextPts, MatOfByte status, MatOfFloat err, Size winSize, int maxLevel, TermCriteria criteria, int flags)
- {
- if (prevImg != null) prevImg.ThrowIfDisposed ();
- if (nextImg != null) nextImg.ThrowIfDisposed ();
- if (prevPts != null) prevPts.ThrowIfDisposed ();
- if (nextPts != null) nextPts.ThrowIfDisposed ();
- if (status != null) status.ThrowIfDisposed ();
- if (err != null) err.ThrowIfDisposed ();
- #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
- Mat prevPts_mat = prevPts;
- Mat nextPts_mat = nextPts;
- Mat status_mat = status;
- Mat err_mat = err;
- video_Video_calcOpticalFlowPyrLK_11(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);
-
- return;
- #else
- return;
- #endif
- }
- //javadoc: calcOpticalFlowPyrLK(prevImg, nextImg, prevPts, nextPts, status, err, winSize, maxLevel, criteria)
- public static void calcOpticalFlowPyrLK (Mat prevImg, Mat nextImg, MatOfPoint2f prevPts, MatOfPoint2f nextPts, MatOfByte status, MatOfFloat err, Size winSize, int maxLevel, TermCriteria criteria)
- {
- if (prevImg != null) prevImg.ThrowIfDisposed ();
- if (nextImg != null) nextImg.ThrowIfDisposed ();
- if (prevPts != null) prevPts.ThrowIfDisposed ();
- if (nextPts != null) nextPts.ThrowIfDisposed ();
- if (status != null) status.ThrowIfDisposed ();
- if (err != null) err.ThrowIfDisposed ();
- #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
- Mat prevPts_mat = prevPts;
- Mat nextPts_mat = nextPts;
- Mat status_mat = status;
- Mat err_mat = err;
- video_Video_calcOpticalFlowPyrLK_12(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);
-
- return;
- #else
- return;
- #endif
- }
- //javadoc: calcOpticalFlowPyrLK(prevImg, nextImg, prevPts, nextPts, status, err, winSize, maxLevel)
- public static void calcOpticalFlowPyrLK (Mat prevImg, Mat nextImg, MatOfPoint2f prevPts, MatOfPoint2f nextPts, MatOfByte status, MatOfFloat err, Size winSize, int maxLevel)
- {
- if (prevImg != null) prevImg.ThrowIfDisposed ();
- if (nextImg != null) nextImg.ThrowIfDisposed ();
- if (prevPts != null) prevPts.ThrowIfDisposed ();
- if (nextPts != null) nextPts.ThrowIfDisposed ();
- if (status != null) status.ThrowIfDisposed ();
- if (err != null) err.ThrowIfDisposed ();
- #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
- Mat prevPts_mat = prevPts;
- Mat nextPts_mat = nextPts;
- Mat status_mat = status;
- Mat err_mat = err;
- video_Video_calcOpticalFlowPyrLK_13(prevImg.nativeObj, nextImg.nativeObj, prevPts_mat.nativeObj, nextPts_mat.nativeObj, status_mat.nativeObj, err_mat.nativeObj, winSize.width, winSize.height, maxLevel);
-
- return;
- #else
- return;
- #endif
- }
- //javadoc: calcOpticalFlowPyrLK(prevImg, nextImg, prevPts, nextPts, status, err, winSize)
- public static void calcOpticalFlowPyrLK (Mat prevImg, Mat nextImg, MatOfPoint2f prevPts, MatOfPoint2f nextPts, MatOfByte status, MatOfFloat err, Size winSize)
- {
- if (prevImg != null) prevImg.ThrowIfDisposed ();
- if (nextImg != null) nextImg.ThrowIfDisposed ();
- if (prevPts != null) prevPts.ThrowIfDisposed ();
- if (nextPts != null) nextPts.ThrowIfDisposed ();
- if (status != null) status.ThrowIfDisposed ();
- if (err != null) err.ThrowIfDisposed ();
- #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
- Mat prevPts_mat = prevPts;
- Mat nextPts_mat = nextPts;
- Mat status_mat = status;
- Mat err_mat = err;
- video_Video_calcOpticalFlowPyrLK_14(prevImg.nativeObj, nextImg.nativeObj, prevPts_mat.nativeObj, nextPts_mat.nativeObj, status_mat.nativeObj, err_mat.nativeObj, winSize.width, winSize.height);
-
- return;
- #else
- return;
- #endif
- }
- //javadoc: calcOpticalFlowPyrLK(prevImg, nextImg, prevPts, nextPts, status, err)
- public static void calcOpticalFlowPyrLK (Mat prevImg, Mat nextImg, MatOfPoint2f prevPts, MatOfPoint2f nextPts, MatOfByte status, MatOfFloat err)
- {
- if (prevImg != null) prevImg.ThrowIfDisposed ();
- if (nextImg != null) nextImg.ThrowIfDisposed ();
- if (prevPts != null) prevPts.ThrowIfDisposed ();
- if (nextPts != null) nextPts.ThrowIfDisposed ();
- if (status != null) status.ThrowIfDisposed ();
- if (err != null) err.ThrowIfDisposed ();
- #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
- Mat prevPts_mat = prevPts;
- Mat nextPts_mat = nextPts;
- Mat status_mat = status;
- Mat err_mat = err;
- video_Video_calcOpticalFlowPyrLK_15(prevImg.nativeObj, nextImg.nativeObj, prevPts_mat.nativeObj, nextPts_mat.nativeObj, status_mat.nativeObj, err_mat.nativeObj);
-
- return;
- #else
- return;
- #endif
- }
- #if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
- const string LIBNAME = "__Internal";
- #else
- const string LIBNAME = "opencvforunity";
- #endif
- // C++: Mat cv::readOpticalFlow(String path)
- [DllImport (LIBNAME)]
- private static extern IntPtr video_Video_readOpticalFlow_10 (string path);
- // C++: Ptr_BackgroundSubtractorKNN cv::createBackgroundSubtractorKNN(int history = 500, double dist2Threshold = 400.0, bool detectShadows = true)
- [DllImport (LIBNAME)]
- private static extern IntPtr video_Video_createBackgroundSubtractorKNN_10 (int history, double dist2Threshold, bool detectShadows);
- [DllImport (LIBNAME)]
- private static extern IntPtr video_Video_createBackgroundSubtractorKNN_11 (int history, double dist2Threshold);
- [DllImport (LIBNAME)]
- private static extern IntPtr video_Video_createBackgroundSubtractorKNN_12 (int history);
- [DllImport (LIBNAME)]
- private static extern IntPtr video_Video_createBackgroundSubtractorKNN_13 ();
- // C++: Ptr_BackgroundSubtractorMOG2 cv::createBackgroundSubtractorMOG2(int history = 500, double varThreshold = 16, bool detectShadows = true)
- [DllImport (LIBNAME)]
- private static extern IntPtr video_Video_createBackgroundSubtractorMOG2_10 (int history, double varThreshold, bool detectShadows);
- [DllImport (LIBNAME)]
- private static extern IntPtr video_Video_createBackgroundSubtractorMOG2_11 (int history, double varThreshold);
- [DllImport (LIBNAME)]
- private static extern IntPtr video_Video_createBackgroundSubtractorMOG2_12 (int history);
- [DllImport (LIBNAME)]
- private static extern IntPtr video_Video_createBackgroundSubtractorMOG2_13 ();
- // C++: RotatedRect cv::CamShift(Mat probImage, Rect& window, TermCriteria criteria)
- [DllImport (LIBNAME)]
- private static extern void video_Video_CamShift_10 (IntPtr 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, double[] retVal);
- // C++: bool cv::writeOpticalFlow(String path, Mat flow)
- [DllImport (LIBNAME)]
- private static extern bool video_Video_writeOpticalFlow_10 (string path, IntPtr flow_nativeObj);
- // C++: double cv::findTransformECC(Mat templateImage, Mat inputImage, Mat& warpMatrix, int motionType = MOTION_AFFINE, TermCriteria criteria = TermCriteria(TermCriteria::COUNT+TermCriteria::EPS, 50, 0.001), Mat inputMask = Mat())
- [DllImport (LIBNAME)]
- private static extern double video_Video_findTransformECC_10 (IntPtr templateImage_nativeObj, IntPtr inputImage_nativeObj, IntPtr warpMatrix_nativeObj, int motionType, int criteria_type, int criteria_maxCount, double criteria_epsilon, IntPtr inputMask_nativeObj);
- [DllImport (LIBNAME)]
- private static extern double video_Video_findTransformECC_11 (IntPtr templateImage_nativeObj, IntPtr inputImage_nativeObj, IntPtr warpMatrix_nativeObj, int motionType, int criteria_type, int criteria_maxCount, double criteria_epsilon);
- [DllImport (LIBNAME)]
- private static extern double video_Video_findTransformECC_12 (IntPtr templateImage_nativeObj, IntPtr inputImage_nativeObj, IntPtr warpMatrix_nativeObj, int motionType);
- [DllImport (LIBNAME)]
- private static extern double video_Video_findTransformECC_13 (IntPtr templateImage_nativeObj, IntPtr inputImage_nativeObj, IntPtr warpMatrix_nativeObj);
- // C++: int cv::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)
- [DllImport (LIBNAME)]
- private static extern int video_Video_buildOpticalFlowPyramid_10 (IntPtr img_nativeObj, IntPtr pyramid_mat_nativeObj, double winSize_width, double winSize_height, int maxLevel, bool withDerivatives, int pyrBorder, int derivBorder, bool tryReuseInputImage);
- [DllImport (LIBNAME)]
- private static extern int video_Video_buildOpticalFlowPyramid_11 (IntPtr img_nativeObj, IntPtr pyramid_mat_nativeObj, double winSize_width, double winSize_height, int maxLevel, bool withDerivatives, int pyrBorder, int derivBorder);
- [DllImport (LIBNAME)]
- private static extern int video_Video_buildOpticalFlowPyramid_12 (IntPtr img_nativeObj, IntPtr pyramid_mat_nativeObj, double winSize_width, double winSize_height, int maxLevel, bool withDerivatives, int pyrBorder);
- [DllImport (LIBNAME)]
- private static extern int video_Video_buildOpticalFlowPyramid_13 (IntPtr img_nativeObj, IntPtr pyramid_mat_nativeObj, double winSize_width, double winSize_height, int maxLevel, bool withDerivatives);
- [DllImport (LIBNAME)]
- private static extern int video_Video_buildOpticalFlowPyramid_14 (IntPtr img_nativeObj, IntPtr pyramid_mat_nativeObj, double winSize_width, double winSize_height, int maxLevel);
- // C++: int cv::meanShift(Mat probImage, Rect& window, TermCriteria criteria)
- [DllImport (LIBNAME)]
- private static extern int video_Video_meanShift_10 (IntPtr 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);
- // C++: void cv::calcOpticalFlowFarneback(Mat prev, Mat next, Mat& flow, double pyr_scale, int levels, int winsize, int iterations, int poly_n, double poly_sigma, int flags)
- [DllImport (LIBNAME)]
- private static extern void video_Video_calcOpticalFlowFarneback_10 (IntPtr prev_nativeObj, IntPtr next_nativeObj, IntPtr flow_nativeObj, double pyr_scale, int levels, int winsize, int iterations, int poly_n, double poly_sigma, int flags);
- // C++: void cv::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)
- [DllImport (LIBNAME)]
- private static extern void video_Video_calcOpticalFlowPyrLK_10 (IntPtr prevImg_nativeObj, IntPtr nextImg_nativeObj, IntPtr prevPts_mat_nativeObj, IntPtr nextPts_mat_nativeObj, IntPtr status_mat_nativeObj, IntPtr err_mat_nativeObj, double winSize_width, double winSize_height, int maxLevel, int criteria_type, int criteria_maxCount, double criteria_epsilon, int flags, double minEigThreshold);
- [DllImport (LIBNAME)]
- private static extern void video_Video_calcOpticalFlowPyrLK_11 (IntPtr prevImg_nativeObj, IntPtr nextImg_nativeObj, IntPtr prevPts_mat_nativeObj, IntPtr nextPts_mat_nativeObj, IntPtr status_mat_nativeObj, IntPtr err_mat_nativeObj, double winSize_width, double winSize_height, int maxLevel, int criteria_type, int criteria_maxCount, double criteria_epsilon, int flags);
- [DllImport (LIBNAME)]
- private static extern void video_Video_calcOpticalFlowPyrLK_12 (IntPtr prevImg_nativeObj, IntPtr nextImg_nativeObj, IntPtr prevPts_mat_nativeObj, IntPtr nextPts_mat_nativeObj, IntPtr status_mat_nativeObj, IntPtr err_mat_nativeObj, double winSize_width, double winSize_height, int maxLevel, int criteria_type, int criteria_maxCount, double criteria_epsilon);
- [DllImport (LIBNAME)]
- private static extern void video_Video_calcOpticalFlowPyrLK_13 (IntPtr prevImg_nativeObj, IntPtr nextImg_nativeObj, IntPtr prevPts_mat_nativeObj, IntPtr nextPts_mat_nativeObj, IntPtr status_mat_nativeObj, IntPtr err_mat_nativeObj, double winSize_width, double winSize_height, int maxLevel);
- [DllImport (LIBNAME)]
- private static extern void video_Video_calcOpticalFlowPyrLK_14 (IntPtr prevImg_nativeObj, IntPtr nextImg_nativeObj, IntPtr prevPts_mat_nativeObj, IntPtr nextPts_mat_nativeObj, IntPtr status_mat_nativeObj, IntPtr err_mat_nativeObj, double winSize_width, double winSize_height);
- [DllImport (LIBNAME)]
- private static extern void video_Video_calcOpticalFlowPyrLK_15 (IntPtr prevImg_nativeObj, IntPtr nextImg_nativeObj, IntPtr prevPts_mat_nativeObj, IntPtr nextPts_mat_nativeObj, IntPtr status_mat_nativeObj, IntPtr err_mat_nativeObj);
- }
- }
|