using OpenCVForUnity.CoreModule; using OpenCVForUnity.UtilsModule; using System; using System.Collections.Generic; using System.Runtime.InteropServices; namespace OpenCVForUnity.XimgprocModule { // C++: class SelectiveSearchSegmentation /** * Selective search segmentation algorithm * The class implements the algorithm described in CITE: uijlings2013selective. */ public class SelectiveSearchSegmentation : Algorithm { protected override void Dispose(bool disposing) { try { if (disposing) { } if (IsEnabledDispose) { if (nativeObj != IntPtr.Zero) ximgproc_SelectiveSearchSegmentation_delete(nativeObj); nativeObj = IntPtr.Zero; } } finally { base.Dispose(disposing); } } protected internal SelectiveSearchSegmentation(IntPtr addr) : base(addr) { } // internal usage only public static new SelectiveSearchSegmentation __fromPtr__(IntPtr addr) { return new SelectiveSearchSegmentation(addr); } // // C++: void cv::ximgproc::segmentation::SelectiveSearchSegmentation::setBaseImage(Mat img) // /** * Set a image used by switch* functions to initialize the class * param img The image */ public void setBaseImage(Mat img) { ThrowIfDisposed(); if (img != null) img.ThrowIfDisposed(); ximgproc_SelectiveSearchSegmentation_setBaseImage_10(nativeObj, img.nativeObj); } // // C++: void cv::ximgproc::segmentation::SelectiveSearchSegmentation::switchToSingleStrategy(int k = 200, float sigma = 0.8f) // /** * Initialize the class with the 'Single stragegy' parameters describled in CITE: uijlings2013selective. * param k The k parameter for the graph segmentation * param sigma The sigma parameter for the graph segmentation */ public void switchToSingleStrategy(int k, float sigma) { ThrowIfDisposed(); ximgproc_SelectiveSearchSegmentation_switchToSingleStrategy_10(nativeObj, k, sigma); } /** * Initialize the class with the 'Single stragegy' parameters describled in CITE: uijlings2013selective. * param k The k parameter for the graph segmentation */ public void switchToSingleStrategy(int k) { ThrowIfDisposed(); ximgproc_SelectiveSearchSegmentation_switchToSingleStrategy_11(nativeObj, k); } /** * Initialize the class with the 'Single stragegy' parameters describled in CITE: uijlings2013selective. */ public void switchToSingleStrategy() { ThrowIfDisposed(); ximgproc_SelectiveSearchSegmentation_switchToSingleStrategy_12(nativeObj); } // // C++: void cv::ximgproc::segmentation::SelectiveSearchSegmentation::switchToSelectiveSearchFast(int base_k = 150, int inc_k = 150, float sigma = 0.8f) // /** * Initialize the class with the 'Selective search fast' parameters describled in CITE: uijlings2013selective. * param base_k The k parameter for the first graph segmentation * param inc_k The increment of the k parameter for all graph segmentations * param sigma The sigma parameter for the graph segmentation */ public void switchToSelectiveSearchFast(int base_k, int inc_k, float sigma) { ThrowIfDisposed(); ximgproc_SelectiveSearchSegmentation_switchToSelectiveSearchFast_10(nativeObj, base_k, inc_k, sigma); } /** * Initialize the class with the 'Selective search fast' parameters describled in CITE: uijlings2013selective. * param base_k The k parameter for the first graph segmentation * param inc_k The increment of the k parameter for all graph segmentations */ public void switchToSelectiveSearchFast(int base_k, int inc_k) { ThrowIfDisposed(); ximgproc_SelectiveSearchSegmentation_switchToSelectiveSearchFast_11(nativeObj, base_k, inc_k); } /** * Initialize the class with the 'Selective search fast' parameters describled in CITE: uijlings2013selective. * param base_k The k parameter for the first graph segmentation */ public void switchToSelectiveSearchFast(int base_k) { ThrowIfDisposed(); ximgproc_SelectiveSearchSegmentation_switchToSelectiveSearchFast_12(nativeObj, base_k); } /** * Initialize the class with the 'Selective search fast' parameters describled in CITE: uijlings2013selective. */ public void switchToSelectiveSearchFast() { ThrowIfDisposed(); ximgproc_SelectiveSearchSegmentation_switchToSelectiveSearchFast_13(nativeObj); } // // C++: void cv::ximgproc::segmentation::SelectiveSearchSegmentation::switchToSelectiveSearchQuality(int base_k = 150, int inc_k = 150, float sigma = 0.8f) // /** * Initialize the class with the 'Selective search fast' parameters describled in CITE: uijlings2013selective. * param base_k The k parameter for the first graph segmentation * param inc_k The increment of the k parameter for all graph segmentations * param sigma The sigma parameter for the graph segmentation */ public void switchToSelectiveSearchQuality(int base_k, int inc_k, float sigma) { ThrowIfDisposed(); ximgproc_SelectiveSearchSegmentation_switchToSelectiveSearchQuality_10(nativeObj, base_k, inc_k, sigma); } /** * Initialize the class with the 'Selective search fast' parameters describled in CITE: uijlings2013selective. * param base_k The k parameter for the first graph segmentation * param inc_k The increment of the k parameter for all graph segmentations */ public void switchToSelectiveSearchQuality(int base_k, int inc_k) { ThrowIfDisposed(); ximgproc_SelectiveSearchSegmentation_switchToSelectiveSearchQuality_11(nativeObj, base_k, inc_k); } /** * Initialize the class with the 'Selective search fast' parameters describled in CITE: uijlings2013selective. * param base_k The k parameter for the first graph segmentation */ public void switchToSelectiveSearchQuality(int base_k) { ThrowIfDisposed(); ximgproc_SelectiveSearchSegmentation_switchToSelectiveSearchQuality_12(nativeObj, base_k); } /** * Initialize the class with the 'Selective search fast' parameters describled in CITE: uijlings2013selective. */ public void switchToSelectiveSearchQuality() { ThrowIfDisposed(); ximgproc_SelectiveSearchSegmentation_switchToSelectiveSearchQuality_13(nativeObj); } // // C++: void cv::ximgproc::segmentation::SelectiveSearchSegmentation::addImage(Mat img) // /** * Add a new image in the list of images to process. * param img The image */ public void addImage(Mat img) { ThrowIfDisposed(); if (img != null) img.ThrowIfDisposed(); ximgproc_SelectiveSearchSegmentation_addImage_10(nativeObj, img.nativeObj); } // // C++: void cv::ximgproc::segmentation::SelectiveSearchSegmentation::clearImages() // /** * Clear the list of images to process */ public void clearImages() { ThrowIfDisposed(); ximgproc_SelectiveSearchSegmentation_clearImages_10(nativeObj); } // // C++: void cv::ximgproc::segmentation::SelectiveSearchSegmentation::addGraphSegmentation(Ptr_GraphSegmentation g) // /** * Add a new graph segmentation in the list of graph segementations to process. * param g The graph segmentation */ public void addGraphSegmentation(GraphSegmentation g) { ThrowIfDisposed(); if (g != null) g.ThrowIfDisposed(); ximgproc_SelectiveSearchSegmentation_addGraphSegmentation_10(nativeObj, g.getNativeObjAddr()); } // // C++: void cv::ximgproc::segmentation::SelectiveSearchSegmentation::clearGraphSegmentations() // /** * Clear the list of graph segmentations to process; */ public void clearGraphSegmentations() { ThrowIfDisposed(); ximgproc_SelectiveSearchSegmentation_clearGraphSegmentations_10(nativeObj); } // // C++: void cv::ximgproc::segmentation::SelectiveSearchSegmentation::addStrategy(Ptr_SelectiveSearchSegmentationStrategy s) // /** * Add a new strategy in the list of strategy to process. * param s The strategy */ public void addStrategy(SelectiveSearchSegmentationStrategy s) { ThrowIfDisposed(); if (s != null) s.ThrowIfDisposed(); ximgproc_SelectiveSearchSegmentation_addStrategy_10(nativeObj, s.getNativeObjAddr()); } // // C++: void cv::ximgproc::segmentation::SelectiveSearchSegmentation::clearStrategies() // /** * Clear the list of strategy to process; */ public void clearStrategies() { ThrowIfDisposed(); ximgproc_SelectiveSearchSegmentation_clearStrategies_10(nativeObj); } // // C++: void cv::ximgproc::segmentation::SelectiveSearchSegmentation::process(vector_Rect& rects) // /** * Based on all images, graph segmentations and stragies, computes all possible rects and return them * param rects The list of rects. The first ones are more relevents than the lasts ones. */ public void process(MatOfRect rects) { ThrowIfDisposed(); if (rects != null) rects.ThrowIfDisposed(); Mat rects_mat = rects; ximgproc_SelectiveSearchSegmentation_process_10(nativeObj, rects_mat.nativeObj); } #if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR const string LIBNAME = "__Internal"; #else const string LIBNAME = "opencvforunity"; #endif // C++: void cv::ximgproc::segmentation::SelectiveSearchSegmentation::setBaseImage(Mat img) [DllImport(LIBNAME)] private static extern void ximgproc_SelectiveSearchSegmentation_setBaseImage_10(IntPtr nativeObj, IntPtr img_nativeObj); // C++: void cv::ximgproc::segmentation::SelectiveSearchSegmentation::switchToSingleStrategy(int k = 200, float sigma = 0.8f) [DllImport(LIBNAME)] private static extern void ximgproc_SelectiveSearchSegmentation_switchToSingleStrategy_10(IntPtr nativeObj, int k, float sigma); [DllImport(LIBNAME)] private static extern void ximgproc_SelectiveSearchSegmentation_switchToSingleStrategy_11(IntPtr nativeObj, int k); [DllImport(LIBNAME)] private static extern void ximgproc_SelectiveSearchSegmentation_switchToSingleStrategy_12(IntPtr nativeObj); // C++: void cv::ximgproc::segmentation::SelectiveSearchSegmentation::switchToSelectiveSearchFast(int base_k = 150, int inc_k = 150, float sigma = 0.8f) [DllImport(LIBNAME)] private static extern void ximgproc_SelectiveSearchSegmentation_switchToSelectiveSearchFast_10(IntPtr nativeObj, int base_k, int inc_k, float sigma); [DllImport(LIBNAME)] private static extern void ximgproc_SelectiveSearchSegmentation_switchToSelectiveSearchFast_11(IntPtr nativeObj, int base_k, int inc_k); [DllImport(LIBNAME)] private static extern void ximgproc_SelectiveSearchSegmentation_switchToSelectiveSearchFast_12(IntPtr nativeObj, int base_k); [DllImport(LIBNAME)] private static extern void ximgproc_SelectiveSearchSegmentation_switchToSelectiveSearchFast_13(IntPtr nativeObj); // C++: void cv::ximgproc::segmentation::SelectiveSearchSegmentation::switchToSelectiveSearchQuality(int base_k = 150, int inc_k = 150, float sigma = 0.8f) [DllImport(LIBNAME)] private static extern void ximgproc_SelectiveSearchSegmentation_switchToSelectiveSearchQuality_10(IntPtr nativeObj, int base_k, int inc_k, float sigma); [DllImport(LIBNAME)] private static extern void ximgproc_SelectiveSearchSegmentation_switchToSelectiveSearchQuality_11(IntPtr nativeObj, int base_k, int inc_k); [DllImport(LIBNAME)] private static extern void ximgproc_SelectiveSearchSegmentation_switchToSelectiveSearchQuality_12(IntPtr nativeObj, int base_k); [DllImport(LIBNAME)] private static extern void ximgproc_SelectiveSearchSegmentation_switchToSelectiveSearchQuality_13(IntPtr nativeObj); // C++: void cv::ximgproc::segmentation::SelectiveSearchSegmentation::addImage(Mat img) [DllImport(LIBNAME)] private static extern void ximgproc_SelectiveSearchSegmentation_addImage_10(IntPtr nativeObj, IntPtr img_nativeObj); // C++: void cv::ximgproc::segmentation::SelectiveSearchSegmentation::clearImages() [DllImport(LIBNAME)] private static extern void ximgproc_SelectiveSearchSegmentation_clearImages_10(IntPtr nativeObj); // C++: void cv::ximgproc::segmentation::SelectiveSearchSegmentation::addGraphSegmentation(Ptr_GraphSegmentation g) [DllImport(LIBNAME)] private static extern void ximgproc_SelectiveSearchSegmentation_addGraphSegmentation_10(IntPtr nativeObj, IntPtr g_nativeObj); // C++: void cv::ximgproc::segmentation::SelectiveSearchSegmentation::clearGraphSegmentations() [DllImport(LIBNAME)] private static extern void ximgproc_SelectiveSearchSegmentation_clearGraphSegmentations_10(IntPtr nativeObj); // C++: void cv::ximgproc::segmentation::SelectiveSearchSegmentation::addStrategy(Ptr_SelectiveSearchSegmentationStrategy s) [DllImport(LIBNAME)] private static extern void ximgproc_SelectiveSearchSegmentation_addStrategy_10(IntPtr nativeObj, IntPtr s_nativeObj); // C++: void cv::ximgproc::segmentation::SelectiveSearchSegmentation::clearStrategies() [DllImport(LIBNAME)] private static extern void ximgproc_SelectiveSearchSegmentation_clearStrategies_10(IntPtr nativeObj); // C++: void cv::ximgproc::segmentation::SelectiveSearchSegmentation::process(vector_Rect& rects) [DllImport(LIBNAME)] private static extern void ximgproc_SelectiveSearchSegmentation_process_10(IntPtr nativeObj, IntPtr rects_mat_nativeObj); // native support for java finalize() [DllImport(LIBNAME)] private static extern void ximgproc_SelectiveSearchSegmentation_delete(IntPtr nativeObj); } }