123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806 |
- using OpenCVForUnity.CoreModule;
- using OpenCVForUnity.UtilsModule;
- using System;
- using System.Collections.Generic;
- using System.Runtime.InteropServices;
- namespace OpenCVForUnity.VideoioModule
- {
- // C++: class VideoCapture
- /**
- * Class for video capturing from video files, image sequences or cameras.
- *
- * The class provides C++ API for capturing video from cameras or for reading video files and image sequences.
- *
- * Here is how the class can be used:
- * INCLUDE: samples/cpp/videocapture_basic.cpp
- *
- * <b>Note:</b> In REF: videoio_c "C API" the black-box structure {code CvCapture} is used instead of %VideoCapture.
- * <b>Note:</b>
- * <ul>
- * <li>
- * (C++) A basic sample on using the %VideoCapture interface can be found at
- * {code OPENCV_SOURCE_CODE/samples/cpp/videocapture_starter.cpp}
- * </li>
- * <li>
- * (Python) A basic sample on using the %VideoCapture interface can be found at
- * {code OPENCV_SOURCE_CODE/samples/python/video.py}
- * </li>
- * <li>
- * (Python) A multi threaded video processing sample can be found at
- * {code OPENCV_SOURCE_CODE/samples/python/video_threaded.py}
- * </li>
- * <li>
- * (Python) %VideoCapture sample showcasing some features of the Video4Linux2 backend
- * {code OPENCV_SOURCE_CODE/samples/python/video_v4l2.py}
- * </li>
- * </ul>
- */
- public class VideoCapture : DisposableOpenCVObject
- {
- protected override void Dispose(bool disposing)
- {
- try
- {
- if (disposing)
- {
- }
- if (IsEnabledDispose)
- {
- if (nativeObj != IntPtr.Zero)
- videoio_VideoCapture_delete(nativeObj);
- nativeObj = IntPtr.Zero;
- }
- }
- finally
- {
- base.Dispose(disposing);
- }
- }
- protected internal VideoCapture(IntPtr addr) : base(addr) { }
- public IntPtr getNativeObjAddr() { return nativeObj; }
- // internal usage only
- public static VideoCapture __fromPtr__(IntPtr addr) { return new VideoCapture(addr); }
- //
- // C++: cv::VideoCapture::VideoCapture()
- //
- /**
- * Default constructor
- * <b>Note:</b> In REF: videoio_c "C API", when you finished working with video, release CvCapture structure with
- * cvReleaseCapture(), or use Ptr<CvCapture> that calls cvReleaseCapture() automatically in the
- * destructor.
- */
- public VideoCapture()
- {
- nativeObj = DisposableObject.ThrowIfNullIntPtr(videoio_VideoCapture_VideoCapture_10());
- }
- //
- // C++: cv::VideoCapture::VideoCapture(String filename, int apiPreference = CAP_ANY)
- //
- /**
- *
- * Opens a video file or a capturing device or an IP video stream for video capturing with API Preference
- *
- * param filename it can be:
- * <ul>
- * <li>
- * name of video file (eg. {code video.avi})
- * </li>
- * <li>
- * or image sequence (eg. {code img_%02d.jpg}, which will read samples like {code img_00.jpg, img_01.jpg, img_02.jpg, ...})
- * </li>
- * <li>
- * or URL of video stream (eg. {code protocol://host:port/script_name?script_params|auth})
- * </li>
- * <li>
- * or GStreamer pipeline string in gst-launch tool format in case if GStreamer is used as backend
- * Note that each video stream or IP camera feed has its own URL scheme. Please refer to the
- * documentation of source stream to know the right URL.
- * </li>
- * </ul>
- * param apiPreference preferred Capture API backends to use. Can be used to enforce a specific reader
- * implementation if multiple are available: e.g. cv::CAP_FFMPEG or cv::CAP_IMAGES or cv::CAP_DSHOW.
- *
- * SEE: cv::VideoCaptureAPIs
- */
- public VideoCapture(string filename, int apiPreference)
- {
- nativeObj = DisposableObject.ThrowIfNullIntPtr(videoio_VideoCapture_VideoCapture_11(filename, apiPreference));
- }
- /**
- *
- * Opens a video file or a capturing device or an IP video stream for video capturing with API Preference
- *
- * param filename it can be:
- * <ul>
- * <li>
- * name of video file (eg. {code video.avi})
- * </li>
- * <li>
- * or image sequence (eg. {code img_%02d.jpg}, which will read samples like {code img_00.jpg, img_01.jpg, img_02.jpg, ...})
- * </li>
- * <li>
- * or URL of video stream (eg. {code protocol://host:port/script_name?script_params|auth})
- * </li>
- * <li>
- * or GStreamer pipeline string in gst-launch tool format in case if GStreamer is used as backend
- * Note that each video stream or IP camera feed has its own URL scheme. Please refer to the
- * documentation of source stream to know the right URL.
- * </li>
- * </ul>
- * implementation if multiple are available: e.g. cv::CAP_FFMPEG or cv::CAP_IMAGES or cv::CAP_DSHOW.
- *
- * SEE: cv::VideoCaptureAPIs
- */
- public VideoCapture(string filename)
- {
- nativeObj = DisposableObject.ThrowIfNullIntPtr(videoio_VideoCapture_VideoCapture_12(filename));
- }
- //
- // C++: cv::VideoCapture::VideoCapture(String filename, int apiPreference, vector_int _params)
- //
- /**
- *
- * Opens a video file or a capturing device or an IP video stream for video capturing with API Preference and parameters
- *
- * The {code params} parameter allows to specify extra parameters encoded as pairs {code (paramId_1, paramValue_1, paramId_2, paramValue_2, ...)}.
- * See cv::VideoCaptureProperties
- * param filename automatically generated
- * param apiPreference automatically generated
- * param _params automatically generated
- */
- public VideoCapture(string filename, int apiPreference, MatOfInt _params)
- {
- if (_params != null) _params.ThrowIfDisposed();
- Mat _params_mat = _params;
- nativeObj = DisposableObject.ThrowIfNullIntPtr(videoio_VideoCapture_VideoCapture_13(filename, apiPreference, _params_mat.nativeObj));
- }
- //
- // C++: cv::VideoCapture::VideoCapture(int index, int apiPreference = CAP_ANY)
- //
- /**
- *
- * Opens a camera for video capturing
- *
- * param index id of the video capturing device to open. To open default camera using default backend just pass 0.
- * (to backward compatibility usage of camera_id + domain_offset (CAP_*) is valid when apiPreference is CAP_ANY)
- * param apiPreference preferred Capture API backends to use. Can be used to enforce a specific reader
- * implementation if multiple are available: e.g. cv::CAP_DSHOW or cv::CAP_MSMF or cv::CAP_V4L.
- *
- * SEE: cv::VideoCaptureAPIs
- */
- public VideoCapture(int index, int apiPreference)
- {
- nativeObj = DisposableObject.ThrowIfNullIntPtr(videoio_VideoCapture_VideoCapture_14(index, apiPreference));
- }
- /**
- *
- * Opens a camera for video capturing
- *
- * param index id of the video capturing device to open. To open default camera using default backend just pass 0.
- * (to backward compatibility usage of camera_id + domain_offset (CAP_*) is valid when apiPreference is CAP_ANY)
- * implementation if multiple are available: e.g. cv::CAP_DSHOW or cv::CAP_MSMF or cv::CAP_V4L.
- *
- * SEE: cv::VideoCaptureAPIs
- */
- public VideoCapture(int index)
- {
- nativeObj = DisposableObject.ThrowIfNullIntPtr(videoio_VideoCapture_VideoCapture_15(index));
- }
- //
- // C++: cv::VideoCapture::VideoCapture(int index, int apiPreference, vector_int _params)
- //
- /**
- *
- * Opens a camera for video capturing with API Preference and parameters
- *
- * The {code params} parameter allows to specify extra parameters encoded as pairs {code (paramId_1, paramValue_1, paramId_2, paramValue_2, ...)}.
- * See cv::VideoCaptureProperties
- * param index automatically generated
- * param apiPreference automatically generated
- * param _params automatically generated
- */
- public VideoCapture(int index, int apiPreference, MatOfInt _params)
- {
- if (_params != null) _params.ThrowIfDisposed();
- Mat _params_mat = _params;
- nativeObj = DisposableObject.ThrowIfNullIntPtr(videoio_VideoCapture_VideoCapture_16(index, apiPreference, _params_mat.nativeObj));
- }
- //
- // C++: bool cv::VideoCapture::open(String filename, int apiPreference = CAP_ANY)
- //
- /**
- * Opens a video file or a capturing device or an IP video stream for video capturing.
- *
- *
- *
- * Parameters are same as the constructor VideoCapture(const String& filename, int apiPreference = CAP_ANY)
- * return {code true} if the file has been successfully opened
- *
- * The method first calls VideoCapture::release to close the already opened file or camera.
- * param filename automatically generated
- * param apiPreference automatically generated
- */
- public bool open(string filename, int apiPreference)
- {
- ThrowIfDisposed();
- return videoio_VideoCapture_open_10(nativeObj, filename, apiPreference);
- }
- /**
- * Opens a video file or a capturing device or an IP video stream for video capturing.
- *
- *
- *
- * Parameters are same as the constructor VideoCapture(const String& filename, int apiPreference = CAP_ANY)
- * return {code true} if the file has been successfully opened
- *
- * The method first calls VideoCapture::release to close the already opened file or camera.
- * param filename automatically generated
- */
- public bool open(string filename)
- {
- ThrowIfDisposed();
- return videoio_VideoCapture_open_11(nativeObj, filename);
- }
- //
- // C++: bool cv::VideoCapture::open(String filename, int apiPreference, vector_int _params)
- //
- /**
- * Opens a video file or a capturing device or an IP video stream for video capturing with API Preference and parameters
- *
- *
- *
- * The {code params} parameter allows to specify extra parameters encoded as pairs {code (paramId_1, paramValue_1, paramId_2, paramValue_2, ...)}.
- * See cv::VideoCaptureProperties
- *
- * return {code true} if the file has been successfully opened
- *
- * The method first calls VideoCapture::release to close the already opened file or camera.
- * param filename automatically generated
- * param apiPreference automatically generated
- * param _params automatically generated
- */
- public bool open(string filename, int apiPreference, MatOfInt _params)
- {
- ThrowIfDisposed();
- if (_params != null) _params.ThrowIfDisposed();
- Mat _params_mat = _params;
- return videoio_VideoCapture_open_12(nativeObj, filename, apiPreference, _params_mat.nativeObj);
- }
- //
- // C++: bool cv::VideoCapture::open(int index, int apiPreference = CAP_ANY)
- //
- /**
- * Opens a camera for video capturing
- *
- *
- *
- * Parameters are same as the constructor VideoCapture(int index, int apiPreference = CAP_ANY)
- * return {code true} if the camera has been successfully opened.
- *
- * The method first calls VideoCapture::release to close the already opened file or camera.
- * param index automatically generated
- * param apiPreference automatically generated
- */
- public bool open(int index, int apiPreference)
- {
- ThrowIfDisposed();
- return videoio_VideoCapture_open_13(nativeObj, index, apiPreference);
- }
- /**
- * Opens a camera for video capturing
- *
- *
- *
- * Parameters are same as the constructor VideoCapture(int index, int apiPreference = CAP_ANY)
- * return {code true} if the camera has been successfully opened.
- *
- * The method first calls VideoCapture::release to close the already opened file or camera.
- * param index automatically generated
- */
- public bool open(int index)
- {
- ThrowIfDisposed();
- return videoio_VideoCapture_open_14(nativeObj, index);
- }
- //
- // C++: bool cv::VideoCapture::open(int index, int apiPreference, vector_int _params)
- //
- /**
- * Opens a camera for video capturing with API Preference and parameters
- *
- *
- *
- * The {code params} parameter allows to specify extra parameters encoded as pairs {code (paramId_1, paramValue_1, paramId_2, paramValue_2, ...)}.
- * See cv::VideoCaptureProperties
- *
- * return {code true} if the camera has been successfully opened.
- *
- * The method first calls VideoCapture::release to close the already opened file or camera.
- * param index automatically generated
- * param apiPreference automatically generated
- * param _params automatically generated
- */
- public bool open(int index, int apiPreference, MatOfInt _params)
- {
- ThrowIfDisposed();
- if (_params != null) _params.ThrowIfDisposed();
- Mat _params_mat = _params;
- return videoio_VideoCapture_open_15(nativeObj, index, apiPreference, _params_mat.nativeObj);
- }
- //
- // C++: bool cv::VideoCapture::isOpened()
- //
- /**
- * Returns true if video capturing has been initialized already.
- *
- * If the previous call to VideoCapture constructor or VideoCapture::open() succeeded, the method returns
- * true.
- * return automatically generated
- */
- public bool isOpened()
- {
- ThrowIfDisposed();
- return videoio_VideoCapture_isOpened_10(nativeObj);
- }
- //
- // C++: void cv::VideoCapture::release()
- //
- /**
- * Closes video file or capturing device.
- *
- * The method is automatically called by subsequent VideoCapture::open and by VideoCapture
- * destructor.
- *
- * The C function also deallocates memory and clears \*capture pointer.
- */
- public void release()
- {
- ThrowIfDisposed();
- videoio_VideoCapture_release_10(nativeObj);
- }
- //
- // C++: bool cv::VideoCapture::grab()
- //
- /**
- * Grabs the next frame from video file or capturing device.
- *
- * return {code true} (non-zero) in the case of success.
- *
- * The method/function grabs the next frame from video file or camera and returns true (non-zero) in
- * the case of success.
- *
- * The primary use of the function is in multi-camera environments, especially when the cameras do not
- * have hardware synchronization. That is, you call VideoCapture::grab() for each camera and after that
- * call the slower method VideoCapture::retrieve() to decode and get frame from each camera. This way
- * the overhead on demosaicing or motion jpeg decompression etc. is eliminated and the retrieved frames
- * from different cameras will be closer in time.
- *
- * Also, when a connected camera is multi-head (for example, a stereo camera or a Kinect device), the
- * correct way of retrieving data from it is to call VideoCapture::grab() first and then call
- * VideoCapture::retrieve() one or more times with different values of the channel parameter.
- *
- * REF: tutorial_kinect_openni
- */
- public bool grab()
- {
- ThrowIfDisposed();
- return videoio_VideoCapture_grab_10(nativeObj);
- }
- //
- // C++: bool cv::VideoCapture::retrieve(Mat& image, int flag = 0)
- //
- /**
- * Decodes and returns the grabbed video frame.
- *
- * param flag it could be a frame index or a driver specific flag
- * return {code false} if no frames has been grabbed
- *
- * The method decodes and returns the just grabbed frame. If no frames has been grabbed
- * (camera has been disconnected, or there are no more frames in video file), the method returns false
- * and the function returns an empty image (with %cv::Mat, test it with Mat::empty()).
- *
- * SEE: read()
- *
- * <b>Note:</b> In REF: videoio_c "C API", functions cvRetrieveFrame() and cv.RetrieveFrame() return image stored inside the video
- * capturing structure. It is not allowed to modify or release the image! You can copy the frame using
- * cvCloneImage and then do whatever you want with the copy.
- * param image automatically generated
- */
- public bool retrieve(Mat image, int flag)
- {
- ThrowIfDisposed();
- if (image != null) image.ThrowIfDisposed();
- return videoio_VideoCapture_retrieve_10(nativeObj, image.nativeObj, flag);
- }
- /**
- * Decodes and returns the grabbed video frame.
- *
- * return {code false} if no frames has been grabbed
- *
- * The method decodes and returns the just grabbed frame. If no frames has been grabbed
- * (camera has been disconnected, or there are no more frames in video file), the method returns false
- * and the function returns an empty image (with %cv::Mat, test it with Mat::empty()).
- *
- * SEE: read()
- *
- * <b>Note:</b> In REF: videoio_c "C API", functions cvRetrieveFrame() and cv.RetrieveFrame() return image stored inside the video
- * capturing structure. It is not allowed to modify or release the image! You can copy the frame using
- * cvCloneImage and then do whatever you want with the copy.
- * param image automatically generated
- */
- public bool retrieve(Mat image)
- {
- ThrowIfDisposed();
- if (image != null) image.ThrowIfDisposed();
- return videoio_VideoCapture_retrieve_11(nativeObj, image.nativeObj);
- }
- //
- // C++: bool cv::VideoCapture::read(Mat& image)
- //
- /**
- * Grabs, decodes and returns the next video frame.
- *
- * return {code false} if no frames has been grabbed
- *
- * The method/function combines VideoCapture::grab() and VideoCapture::retrieve() in one call. This is the
- * most convenient method for reading video files or capturing data from decode and returns the just
- * grabbed frame. If no frames has been grabbed (camera has been disconnected, or there are no more
- * frames in video file), the method returns false and the function returns empty image (with %cv::Mat, test it with Mat::empty()).
- *
- * <b>Note:</b> In REF: videoio_c "C API", functions cvRetrieveFrame() and cv.RetrieveFrame() return image stored inside the video
- * capturing structure. It is not allowed to modify or release the image! You can copy the frame using
- * cvCloneImage and then do whatever you want with the copy.
- * param image automatically generated
- */
- public bool read(Mat image)
- {
- ThrowIfDisposed();
- if (image != null) image.ThrowIfDisposed();
- return videoio_VideoCapture_read_10(nativeObj, image.nativeObj);
- }
- //
- // C++: bool cv::VideoCapture::set(int propId, double value)
- //
- /**
- * Sets a property in the VideoCapture.
- *
- * param propId Property identifier from cv::VideoCaptureProperties (eg. cv::CAP_PROP_POS_MSEC, cv::CAP_PROP_POS_FRAMES, ...)
- * or one from REF: videoio_flags_others
- * param value Value of the property.
- * return {code true} if the property is supported by backend used by the VideoCapture instance.
- * <b>Note:</b> Even if it returns {code true} this doesn't ensure that the property
- * value has been accepted by the capture device. See note in VideoCapture::get()
- */
- public bool set(int propId, double value)
- {
- ThrowIfDisposed();
- return videoio_VideoCapture_set_10(nativeObj, propId, value);
- }
- //
- // C++: double cv::VideoCapture::get(int propId)
- //
- /**
- * Returns the specified VideoCapture property
- *
- * param propId Property identifier from cv::VideoCaptureProperties (eg. cv::CAP_PROP_POS_MSEC, cv::CAP_PROP_POS_FRAMES, ...)
- * or one from REF: videoio_flags_others
- * return Value for the specified property. Value 0 is returned when querying a property that is
- * not supported by the backend used by the VideoCapture instance.
- *
- * <b>Note:</b> Reading / writing properties involves many layers. Some unexpected result might happens
- * along this chain.
- * <code>
- * VideoCapture -> API Backend -> Operating System -> Device Driver -> Device Hardware
- * </code>
- * The returned value might be different from what really used by the device or it could be encoded
- * using device dependent rules (eg. steps or percentage). Effective behaviour depends from device
- * driver and API Backend
- */
- public double get(int propId)
- {
- ThrowIfDisposed();
- return videoio_VideoCapture_get_10(nativeObj, propId);
- }
- //
- // C++: String cv::VideoCapture::getBackendName()
- //
- /**
- * Returns used backend API name
- *
- * <b>Note:</b> Stream should be opened.
- * return automatically generated
- */
- public string getBackendName()
- {
- ThrowIfDisposed();
- string retVal = Marshal.PtrToStringAnsi(DisposableObject.ThrowIfNullIntPtr(videoio_VideoCapture_getBackendName_10(nativeObj)));
- return retVal;
- }
- //
- // C++: void cv::VideoCapture::setExceptionMode(bool enable)
- //
- /**
- * Switches exceptions mode
- *
- * methods raise exceptions if not successful instead of returning an error code
- * param enable automatically generated
- */
- public void setExceptionMode(bool enable)
- {
- ThrowIfDisposed();
- videoio_VideoCapture_setExceptionMode_10(nativeObj, enable);
- }
- //
- // C++: bool cv::VideoCapture::getExceptionMode()
- //
- public bool getExceptionMode()
- {
- ThrowIfDisposed();
- return videoio_VideoCapture_getExceptionMode_10(nativeObj);
- }
- //
- // C++: static bool cv::VideoCapture::waitAny(vector_VideoCapture streams, vector_int& readyIndex, int64 timeoutNs = 0)
- //
- // Unknown type 'vector_VideoCapture' (I), skipping the function
- #if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
- const string LIBNAME = "__Internal";
- #else
- const string LIBNAME = "opencvforunity";
- #endif
- // C++: cv::VideoCapture::VideoCapture()
- [DllImport(LIBNAME)]
- private static extern IntPtr videoio_VideoCapture_VideoCapture_10();
- // C++: cv::VideoCapture::VideoCapture(String filename, int apiPreference = CAP_ANY)
- [DllImport(LIBNAME)]
- private static extern IntPtr videoio_VideoCapture_VideoCapture_11(string filename, int apiPreference);
- [DllImport(LIBNAME)]
- private static extern IntPtr videoio_VideoCapture_VideoCapture_12(string filename);
- // C++: cv::VideoCapture::VideoCapture(String filename, int apiPreference, vector_int _params)
- [DllImport(LIBNAME)]
- private static extern IntPtr videoio_VideoCapture_VideoCapture_13(string filename, int apiPreference, IntPtr _params_mat_nativeObj);
- // C++: cv::VideoCapture::VideoCapture(int index, int apiPreference = CAP_ANY)
- [DllImport(LIBNAME)]
- private static extern IntPtr videoio_VideoCapture_VideoCapture_14(int index, int apiPreference);
- [DllImport(LIBNAME)]
- private static extern IntPtr videoio_VideoCapture_VideoCapture_15(int index);
- // C++: cv::VideoCapture::VideoCapture(int index, int apiPreference, vector_int _params)
- [DllImport(LIBNAME)]
- private static extern IntPtr videoio_VideoCapture_VideoCapture_16(int index, int apiPreference, IntPtr _params_mat_nativeObj);
- // C++: bool cv::VideoCapture::open(String filename, int apiPreference = CAP_ANY)
- [DllImport(LIBNAME)]
- [return: MarshalAs(UnmanagedType.U1)]
- private static extern bool videoio_VideoCapture_open_10(IntPtr nativeObj, string filename, int apiPreference);
- [DllImport(LIBNAME)]
- [return: MarshalAs(UnmanagedType.U1)]
- private static extern bool videoio_VideoCapture_open_11(IntPtr nativeObj, string filename);
- // C++: bool cv::VideoCapture::open(String filename, int apiPreference, vector_int _params)
- [DllImport(LIBNAME)]
- [return: MarshalAs(UnmanagedType.U1)]
- private static extern bool videoio_VideoCapture_open_12(IntPtr nativeObj, string filename, int apiPreference, IntPtr _params_mat_nativeObj);
- // C++: bool cv::VideoCapture::open(int index, int apiPreference = CAP_ANY)
- [DllImport(LIBNAME)]
- [return: MarshalAs(UnmanagedType.U1)]
- private static extern bool videoio_VideoCapture_open_13(IntPtr nativeObj, int index, int apiPreference);
- [DllImport(LIBNAME)]
- [return: MarshalAs(UnmanagedType.U1)]
- private static extern bool videoio_VideoCapture_open_14(IntPtr nativeObj, int index);
- // C++: bool cv::VideoCapture::open(int index, int apiPreference, vector_int _params)
- [DllImport(LIBNAME)]
- [return: MarshalAs(UnmanagedType.U1)]
- private static extern bool videoio_VideoCapture_open_15(IntPtr nativeObj, int index, int apiPreference, IntPtr _params_mat_nativeObj);
- // C++: bool cv::VideoCapture::isOpened()
- [DllImport(LIBNAME)]
- [return: MarshalAs(UnmanagedType.U1)]
- private static extern bool videoio_VideoCapture_isOpened_10(IntPtr nativeObj);
- // C++: void cv::VideoCapture::release()
- [DllImport(LIBNAME)]
- private static extern void videoio_VideoCapture_release_10(IntPtr nativeObj);
- // C++: bool cv::VideoCapture::grab()
- [DllImport(LIBNAME)]
- [return: MarshalAs(UnmanagedType.U1)]
- private static extern bool videoio_VideoCapture_grab_10(IntPtr nativeObj);
- // C++: bool cv::VideoCapture::retrieve(Mat& image, int flag = 0)
- [DllImport(LIBNAME)]
- [return: MarshalAs(UnmanagedType.U1)]
- private static extern bool videoio_VideoCapture_retrieve_10(IntPtr nativeObj, IntPtr image_nativeObj, int flag);
- [DllImport(LIBNAME)]
- [return: MarshalAs(UnmanagedType.U1)]
- private static extern bool videoio_VideoCapture_retrieve_11(IntPtr nativeObj, IntPtr image_nativeObj);
- // C++: bool cv::VideoCapture::read(Mat& image)
- [DllImport(LIBNAME)]
- [return: MarshalAs(UnmanagedType.U1)]
- private static extern bool videoio_VideoCapture_read_10(IntPtr nativeObj, IntPtr image_nativeObj);
- // C++: bool cv::VideoCapture::set(int propId, double value)
- [DllImport(LIBNAME)]
- [return: MarshalAs(UnmanagedType.U1)]
- private static extern bool videoio_VideoCapture_set_10(IntPtr nativeObj, int propId, double value);
- // C++: double cv::VideoCapture::get(int propId)
- [DllImport(LIBNAME)]
- private static extern double videoio_VideoCapture_get_10(IntPtr nativeObj, int propId);
- // C++: String cv::VideoCapture::getBackendName()
- [DllImport(LIBNAME)]
- private static extern IntPtr videoio_VideoCapture_getBackendName_10(IntPtr nativeObj);
- // C++: void cv::VideoCapture::setExceptionMode(bool enable)
- [DllImport(LIBNAME)]
- private static extern void videoio_VideoCapture_setExceptionMode_10(IntPtr nativeObj, [MarshalAs(UnmanagedType.U1)] bool enable);
- // C++: bool cv::VideoCapture::getExceptionMode()
- [DllImport(LIBNAME)]
- [return: MarshalAs(UnmanagedType.U1)]
- private static extern bool videoio_VideoCapture_getExceptionMode_10(IntPtr nativeObj);
- // native support for java finalize()
- [DllImport(LIBNAME)]
- private static extern void videoio_VideoCapture_delete(IntPtr nativeObj);
- }
- }
|