using OpenCVForUnity.CoreModule; using OpenCVForUnity.UtilsModule; using System; using System.Collections.Generic; using System.Runtime.InteropServices; namespace OpenCVForUnity.Features2dModule { // C++: class Feature2D //javadoc: Feature2D public class Feature2D : Algorithm { protected override void Dispose (bool disposing) { #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER try { if (disposing) { } if (IsEnabledDispose) { if (nativeObj != IntPtr.Zero) features2d_Feature2D_delete(nativeObj); nativeObj = IntPtr.Zero; } } finally { base.Dispose (disposing); } #else return; #endif } protected internal Feature2D (IntPtr addr) : base (addr) { } // internal usage only public static new Feature2D __fromPtr__ (IntPtr addr) { return new Feature2D (addr); } // // C++: String cv::Feature2D::getDefaultName() // //javadoc: Feature2D::getDefaultName() public override string getDefaultName () { ThrowIfDisposed (); #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER string retVal = Marshal.PtrToStringAnsi (features2d_Feature2D_getDefaultName_10(nativeObj)); return retVal; #else return null; #endif } // // C++: bool cv::Feature2D::empty() // //javadoc: Feature2D::empty() public override bool empty () { ThrowIfDisposed (); #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER bool retVal = features2d_Feature2D_empty_10(nativeObj); return retVal; #else return false; #endif } // // C++: int cv::Feature2D::defaultNorm() // //javadoc: Feature2D::defaultNorm() public int defaultNorm () { ThrowIfDisposed (); #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER int retVal = features2d_Feature2D_defaultNorm_10(nativeObj); return retVal; #else return -1; #endif } // // C++: int cv::Feature2D::descriptorSize() // //javadoc: Feature2D::descriptorSize() public int descriptorSize () { ThrowIfDisposed (); #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER int retVal = features2d_Feature2D_descriptorSize_10(nativeObj); return retVal; #else return -1; #endif } // // C++: int cv::Feature2D::descriptorType() // //javadoc: Feature2D::descriptorType() public int descriptorType () { ThrowIfDisposed (); #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER int retVal = features2d_Feature2D_descriptorType_10(nativeObj); return retVal; #else return -1; #endif } // // C++: void cv::Feature2D::compute(Mat image, vector_KeyPoint& keypoints, Mat& descriptors) // //javadoc: Feature2D::compute(image, keypoints, descriptors) public void compute (Mat image, MatOfKeyPoint keypoints, Mat descriptors) { ThrowIfDisposed (); if (image != null) image.ThrowIfDisposed (); if (keypoints != null) keypoints.ThrowIfDisposed (); if (descriptors != null) descriptors.ThrowIfDisposed (); #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER Mat keypoints_mat = keypoints; features2d_Feature2D_compute_10(nativeObj, image.nativeObj, keypoints_mat.nativeObj, descriptors.nativeObj); return; #else return; #endif } // // C++: void cv::Feature2D::compute(vector_Mat images, vector_vector_KeyPoint& keypoints, vector_Mat& descriptors) // //javadoc: Feature2D::compute(images, keypoints, descriptors) public void compute (List images, List keypoints, List descriptors) { ThrowIfDisposed (); #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER Mat images_mat = Converters.vector_Mat_to_Mat(images); List keypoints_tmplm = new List((keypoints != null) ? keypoints.Count : 0); Mat keypoints_mat = Converters.vector_vector_KeyPoint_to_Mat(keypoints, keypoints_tmplm); Mat descriptors_mat = new Mat(); features2d_Feature2D_compute_11(nativeObj, images_mat.nativeObj, keypoints_mat.nativeObj, descriptors_mat.nativeObj); Converters.Mat_to_vector_vector_KeyPoint(keypoints_mat, keypoints); keypoints_mat.release(); Converters.Mat_to_vector_Mat(descriptors_mat, descriptors); descriptors_mat.release(); return; #else return; #endif } // // C++: void cv::Feature2D::detect(Mat image, vector_KeyPoint& keypoints, Mat mask = Mat()) // //javadoc: Feature2D::detect(image, keypoints, mask) public void detect (Mat image, MatOfKeyPoint keypoints, Mat mask) { ThrowIfDisposed (); if (image != null) image.ThrowIfDisposed (); if (keypoints != null) keypoints.ThrowIfDisposed (); if (mask != null) mask.ThrowIfDisposed (); #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER Mat keypoints_mat = keypoints; features2d_Feature2D_detect_10(nativeObj, image.nativeObj, keypoints_mat.nativeObj, mask.nativeObj); return; #else return; #endif } //javadoc: Feature2D::detect(image, keypoints) public void detect (Mat image, MatOfKeyPoint keypoints) { ThrowIfDisposed (); if (image != null) image.ThrowIfDisposed (); if (keypoints != null) keypoints.ThrowIfDisposed (); #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER Mat keypoints_mat = keypoints; features2d_Feature2D_detect_11(nativeObj, image.nativeObj, keypoints_mat.nativeObj); return; #else return; #endif } // // C++: void cv::Feature2D::detect(vector_Mat images, vector_vector_KeyPoint& keypoints, vector_Mat masks = vector_Mat()) // //javadoc: Feature2D::detect(images, keypoints, masks) public void detect (List images, List keypoints, List masks) { ThrowIfDisposed (); #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER Mat images_mat = Converters.vector_Mat_to_Mat(images); Mat keypoints_mat = new Mat(); Mat masks_mat = Converters.vector_Mat_to_Mat(masks); features2d_Feature2D_detect_12(nativeObj, images_mat.nativeObj, keypoints_mat.nativeObj, masks_mat.nativeObj); Converters.Mat_to_vector_vector_KeyPoint(keypoints_mat, keypoints); keypoints_mat.release(); return; #else return; #endif } //javadoc: Feature2D::detect(images, keypoints) public void detect (List images, List keypoints) { ThrowIfDisposed (); #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER Mat images_mat = Converters.vector_Mat_to_Mat(images); Mat keypoints_mat = new Mat(); features2d_Feature2D_detect_13(nativeObj, images_mat.nativeObj, keypoints_mat.nativeObj); Converters.Mat_to_vector_vector_KeyPoint(keypoints_mat, keypoints); keypoints_mat.release(); return; #else return; #endif } // // C++: void cv::Feature2D::detectAndCompute(Mat image, Mat mask, vector_KeyPoint& keypoints, Mat& descriptors, bool useProvidedKeypoints = false) // //javadoc: Feature2D::detectAndCompute(image, mask, keypoints, descriptors, useProvidedKeypoints) public void detectAndCompute (Mat image, Mat mask, MatOfKeyPoint keypoints, Mat descriptors, bool useProvidedKeypoints) { ThrowIfDisposed (); if (image != null) image.ThrowIfDisposed (); if (mask != null) mask.ThrowIfDisposed (); if (keypoints != null) keypoints.ThrowIfDisposed (); if (descriptors != null) descriptors.ThrowIfDisposed (); #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER Mat keypoints_mat = keypoints; features2d_Feature2D_detectAndCompute_10(nativeObj, image.nativeObj, mask.nativeObj, keypoints_mat.nativeObj, descriptors.nativeObj, useProvidedKeypoints); return; #else return; #endif } //javadoc: Feature2D::detectAndCompute(image, mask, keypoints, descriptors) public void detectAndCompute (Mat image, Mat mask, MatOfKeyPoint keypoints, Mat descriptors) { ThrowIfDisposed (); if (image != null) image.ThrowIfDisposed (); if (mask != null) mask.ThrowIfDisposed (); if (keypoints != null) keypoints.ThrowIfDisposed (); if (descriptors != null) descriptors.ThrowIfDisposed (); #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER Mat keypoints_mat = keypoints; features2d_Feature2D_detectAndCompute_11(nativeObj, image.nativeObj, mask.nativeObj, keypoints_mat.nativeObj, descriptors.nativeObj); return; #else return; #endif } // // C++: void cv::Feature2D::read(FileNode arg1) // // Unknown type 'FileNode' (I), skipping the function // // C++: void cv::Feature2D::read(String fileName) // //javadoc: Feature2D::read(fileName) public void read (string fileName) { ThrowIfDisposed (); #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER features2d_Feature2D_read_10(nativeObj, fileName); return; #else return; #endif } // // C++: void cv::Feature2D::write(Ptr_FileStorage fs, String name = String()) // // Unknown type 'Ptr_FileStorage' (I), skipping the function // // C++: void cv::Feature2D::write(String fileName) // //javadoc: Feature2D::write(fileName) public void write (string fileName) { ThrowIfDisposed (); #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER features2d_Feature2D_write_10(nativeObj, fileName); return; #else return; #endif } #if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR const string LIBNAME = "__Internal"; #else const string LIBNAME = "opencvforunity"; #endif // C++: String cv::Feature2D::getDefaultName() [DllImport (LIBNAME)] private static extern IntPtr features2d_Feature2D_getDefaultName_10 (IntPtr nativeObj); // C++: bool cv::Feature2D::empty() [DllImport (LIBNAME)] private static extern bool features2d_Feature2D_empty_10 (IntPtr nativeObj); // C++: int cv::Feature2D::defaultNorm() [DllImport (LIBNAME)] private static extern int features2d_Feature2D_defaultNorm_10 (IntPtr nativeObj); // C++: int cv::Feature2D::descriptorSize() [DllImport (LIBNAME)] private static extern int features2d_Feature2D_descriptorSize_10 (IntPtr nativeObj); // C++: int cv::Feature2D::descriptorType() [DllImport (LIBNAME)] private static extern int features2d_Feature2D_descriptorType_10 (IntPtr nativeObj); // C++: void cv::Feature2D::compute(Mat image, vector_KeyPoint& keypoints, Mat& descriptors) [DllImport (LIBNAME)] private static extern void features2d_Feature2D_compute_10 (IntPtr nativeObj, IntPtr image_nativeObj, IntPtr keypoints_mat_nativeObj, IntPtr descriptors_nativeObj); // C++: void cv::Feature2D::compute(vector_Mat images, vector_vector_KeyPoint& keypoints, vector_Mat& descriptors) [DllImport (LIBNAME)] private static extern void features2d_Feature2D_compute_11 (IntPtr nativeObj, IntPtr images_mat_nativeObj, IntPtr keypoints_mat_nativeObj, IntPtr descriptors_mat_nativeObj); // C++: void cv::Feature2D::detect(Mat image, vector_KeyPoint& keypoints, Mat mask = Mat()) [DllImport (LIBNAME)] private static extern void features2d_Feature2D_detect_10 (IntPtr nativeObj, IntPtr image_nativeObj, IntPtr keypoints_mat_nativeObj, IntPtr mask_nativeObj); [DllImport (LIBNAME)] private static extern void features2d_Feature2D_detect_11 (IntPtr nativeObj, IntPtr image_nativeObj, IntPtr keypoints_mat_nativeObj); // C++: void cv::Feature2D::detect(vector_Mat images, vector_vector_KeyPoint& keypoints, vector_Mat masks = vector_Mat()) [DllImport (LIBNAME)] private static extern void features2d_Feature2D_detect_12 (IntPtr nativeObj, IntPtr images_mat_nativeObj, IntPtr keypoints_mat_nativeObj, IntPtr masks_mat_nativeObj); [DllImport (LIBNAME)] private static extern void features2d_Feature2D_detect_13 (IntPtr nativeObj, IntPtr images_mat_nativeObj, IntPtr keypoints_mat_nativeObj); // C++: void cv::Feature2D::detectAndCompute(Mat image, Mat mask, vector_KeyPoint& keypoints, Mat& descriptors, bool useProvidedKeypoints = false) [DllImport (LIBNAME)] private static extern void features2d_Feature2D_detectAndCompute_10 (IntPtr nativeObj, IntPtr image_nativeObj, IntPtr mask_nativeObj, IntPtr keypoints_mat_nativeObj, IntPtr descriptors_nativeObj, bool useProvidedKeypoints); [DllImport (LIBNAME)] private static extern void features2d_Feature2D_detectAndCompute_11 (IntPtr nativeObj, IntPtr image_nativeObj, IntPtr mask_nativeObj, IntPtr keypoints_mat_nativeObj, IntPtr descriptors_nativeObj); // C++: void cv::Feature2D::read(String fileName) [DllImport (LIBNAME)] private static extern void features2d_Feature2D_read_10 (IntPtr nativeObj, string fileName); // C++: void cv::Feature2D::write(String fileName) [DllImport (LIBNAME)] private static extern void features2d_Feature2D_write_10 (IntPtr nativeObj, string fileName); // native support for java finalize() [DllImport (LIBNAME)] private static extern void features2d_Feature2D_delete (IntPtr nativeObj); } }