using OpenCVForUnity.CoreModule; using OpenCVForUnity.UtilsModule; using System; using System.Collections.Generic; using System.Runtime.InteropServices; namespace OpenCVForUnity.ShapeModule { // C++: class ShapeTransformer //javadoc: ShapeTransformer public class ShapeTransformer : Algorithm { protected override void Dispose(bool disposing) { #if (UNITY_ANDROID && !UNITY_EDITOR) try { if (disposing) { } if (IsEnabledDispose) { if (nativeObj != IntPtr.Zero) shape_ShapeTransformer_delete(nativeObj); nativeObj = IntPtr.Zero; } } finally { base.Dispose(disposing); } #else return; #endif } protected internal ShapeTransformer(IntPtr addr) : base(addr) { } // internal usage only public static new ShapeTransformer __fromPtr__(IntPtr addr) { return new ShapeTransformer(addr); } // // C++: float cv::ShapeTransformer::applyTransformation(Mat input, Mat& output = Mat()) // //javadoc: ShapeTransformer::applyTransformation(input, output) public float applyTransformation(Mat input, Mat output) { ThrowIfDisposed(); if (input != null) input.ThrowIfDisposed(); if (output != null) output.ThrowIfDisposed(); #if (UNITY_ANDROID && !UNITY_EDITOR) float retVal = shape_ShapeTransformer_applyTransformation_10(nativeObj, input.nativeObj, output.nativeObj); return retVal; #else return -1; #endif } //javadoc: ShapeTransformer::applyTransformation(input) public float applyTransformation(Mat input) { ThrowIfDisposed(); if (input != null) input.ThrowIfDisposed(); #if (UNITY_ANDROID && !UNITY_EDITOR) float retVal = shape_ShapeTransformer_applyTransformation_11(nativeObj, input.nativeObj); return retVal; #else return -1; #endif } // // C++: void cv::ShapeTransformer::estimateTransformation(Mat transformingShape, Mat targetShape, vector_DMatch matches) // //javadoc: ShapeTransformer::estimateTransformation(transformingShape, targetShape, matches) public void estimateTransformation(Mat transformingShape, Mat targetShape, MatOfDMatch matches) { ThrowIfDisposed(); if (transformingShape != null) transformingShape.ThrowIfDisposed(); if (targetShape != null) targetShape.ThrowIfDisposed(); if (matches != null) matches.ThrowIfDisposed(); #if (UNITY_ANDROID && !UNITY_EDITOR) Mat matches_mat = matches; shape_ShapeTransformer_estimateTransformation_10(nativeObj, transformingShape.nativeObj, targetShape.nativeObj, matches_mat.nativeObj); return; #else return; #endif } // // C++: void cv::ShapeTransformer::warpImage(Mat transformingImage, Mat& output, int flags = INTER_LINEAR, int borderMode = BORDER_CONSTANT, Scalar borderValue = Scalar()) // //javadoc: ShapeTransformer::warpImage(transformingImage, output, flags, borderMode, borderValue) public void warpImage(Mat transformingImage, Mat output, int flags, int borderMode, Scalar borderValue) { ThrowIfDisposed(); if (transformingImage != null) transformingImage.ThrowIfDisposed(); if (output != null) output.ThrowIfDisposed(); #if (UNITY_ANDROID && !UNITY_EDITOR) shape_ShapeTransformer_warpImage_10(nativeObj, transformingImage.nativeObj, output.nativeObj, flags, borderMode, borderValue.val[0], borderValue.val[1], borderValue.val[2], borderValue.val[3]); return; #else return; #endif } //javadoc: ShapeTransformer::warpImage(transformingImage, output, flags, borderMode) public void warpImage(Mat transformingImage, Mat output, int flags, int borderMode) { ThrowIfDisposed(); if (transformingImage != null) transformingImage.ThrowIfDisposed(); if (output != null) output.ThrowIfDisposed(); #if (UNITY_ANDROID && !UNITY_EDITOR) shape_ShapeTransformer_warpImage_11(nativeObj, transformingImage.nativeObj, output.nativeObj, flags, borderMode); return; #else return; #endif } //javadoc: ShapeTransformer::warpImage(transformingImage, output, flags) public void warpImage(Mat transformingImage, Mat output, int flags) { ThrowIfDisposed(); if (transformingImage != null) transformingImage.ThrowIfDisposed(); if (output != null) output.ThrowIfDisposed(); #if (UNITY_ANDROID && !UNITY_EDITOR) shape_ShapeTransformer_warpImage_12(nativeObj, transformingImage.nativeObj, output.nativeObj, flags); return; #else return; #endif } //javadoc: ShapeTransformer::warpImage(transformingImage, output) public void warpImage(Mat transformingImage, Mat output) { ThrowIfDisposed(); if (transformingImage != null) transformingImage.ThrowIfDisposed(); if (output != null) output.ThrowIfDisposed(); #if (UNITY_ANDROID && !UNITY_EDITOR) shape_ShapeTransformer_warpImage_13(nativeObj, transformingImage.nativeObj, output.nativeObj); return; #else return; #endif } #if (UNITY_ANDROID && !UNITY_EDITOR) const string LIBNAME = "opencvforunity"; // C++: float cv::ShapeTransformer::applyTransformation(Mat input, Mat& output = Mat()) [DllImport(LIBNAME)] private static extern float shape_ShapeTransformer_applyTransformation_10(IntPtr nativeObj, IntPtr input_nativeObj, IntPtr output_nativeObj); [DllImport(LIBNAME)] private static extern float shape_ShapeTransformer_applyTransformation_11(IntPtr nativeObj, IntPtr input_nativeObj); // C++: void cv::ShapeTransformer::estimateTransformation(Mat transformingShape, Mat targetShape, vector_DMatch matches) [DllImport(LIBNAME)] private static extern void shape_ShapeTransformer_estimateTransformation_10(IntPtr nativeObj, IntPtr transformingShape_nativeObj, IntPtr targetShape_nativeObj, IntPtr matches_mat_nativeObj); // C++: void cv::ShapeTransformer::warpImage(Mat transformingImage, Mat& output, int flags = INTER_LINEAR, int borderMode = BORDER_CONSTANT, Scalar borderValue = Scalar()) [DllImport(LIBNAME)] private static extern void shape_ShapeTransformer_warpImage_10(IntPtr nativeObj, IntPtr transformingImage_nativeObj, IntPtr output_nativeObj, int flags, int borderMode, double borderValue_val0, double borderValue_val1, double borderValue_val2, double borderValue_val3); [DllImport(LIBNAME)] private static extern void shape_ShapeTransformer_warpImage_11(IntPtr nativeObj, IntPtr transformingImage_nativeObj, IntPtr output_nativeObj, int flags, int borderMode); [DllImport(LIBNAME)] private static extern void shape_ShapeTransformer_warpImage_12(IntPtr nativeObj, IntPtr transformingImage_nativeObj, IntPtr output_nativeObj, int flags); [DllImport(LIBNAME)] private static extern void shape_ShapeTransformer_warpImage_13(IntPtr nativeObj, IntPtr transformingImage_nativeObj, IntPtr output_nativeObj); // native support for java finalize() [DllImport(LIBNAME)] private static extern void shape_ShapeTransformer_delete(IntPtr nativeObj); #endif } }