123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- #if !UNITY_WEBGL
- using OpenCVForUnity.CoreModule;
- using OpenCVForUnity.UtilsModule;
- using System;
- using System.Collections.Generic;
- using System.Runtime.InteropServices;
- namespace OpenCVForUnity.Phase_unwrappingModule
- {
- // C++: class HistogramPhaseUnwrapping
- /**
- * Class implementing two-dimensional phase unwrapping based on CITE: histogramUnwrapping
- * This algorithm belongs to the quality-guided phase unwrapping methods.
- * First, it computes a reliability map from second differences between a pixel and its eight neighbours.
- * Reliability values lie between 0 and 16*pi*pi. Then, this reliability map is used to compute
- * the reliabilities of "edges". An edge is an entity defined by two pixels that are connected
- * horizontally or vertically. Its reliability is found by adding the the reliabilities of the
- * two pixels connected through it. Edges are sorted in a histogram based on their reliability values.
- * This histogram is then used to unwrap pixels, starting from the highest quality pixel.
- *
- * The wrapped phase map and the unwrapped result are stored in CV_32FC1 Mat.
- */
- public class HistogramPhaseUnwrapping : PhaseUnwrapping
- {
- protected override void Dispose(bool disposing)
- {
- try
- {
- if (disposing)
- {
- }
- if (IsEnabledDispose)
- {
- if (nativeObj != IntPtr.Zero)
- phase_1unwrapping_HistogramPhaseUnwrapping_delete(nativeObj);
- nativeObj = IntPtr.Zero;
- }
- }
- finally
- {
- base.Dispose(disposing);
- }
- }
- protected internal HistogramPhaseUnwrapping(IntPtr addr) : base(addr) { }
- // internal usage only
- public static new HistogramPhaseUnwrapping __fromPtr__(IntPtr addr) { return new HistogramPhaseUnwrapping(addr); }
- //
- // C++: static Ptr_HistogramPhaseUnwrapping cv::phase_unwrapping::HistogramPhaseUnwrapping::create(HistogramPhaseUnwrapping_Params parameters = HistogramPhaseUnwrapping::Params())
- //
- /**
- * Constructor
- *
- * param parameters HistogramPhaseUnwrapping parameters HistogramPhaseUnwrapping::Params: width,height of the phase map and histogram characteristics.
- * return automatically generated
- */
- public static HistogramPhaseUnwrapping create(HistogramPhaseUnwrapping_Params parameters)
- {
- if (parameters != null) parameters.ThrowIfDisposed();
- return HistogramPhaseUnwrapping.__fromPtr__(DisposableObject.ThrowIfNullIntPtr(phase_1unwrapping_HistogramPhaseUnwrapping_create_10(parameters.nativeObj)));
- }
- /**
- * Constructor
- *
- * return automatically generated
- */
- public static HistogramPhaseUnwrapping create()
- {
- return HistogramPhaseUnwrapping.__fromPtr__(DisposableObject.ThrowIfNullIntPtr(phase_1unwrapping_HistogramPhaseUnwrapping_create_11()));
- }
- //
- // C++: void cv::phase_unwrapping::HistogramPhaseUnwrapping::getInverseReliabilityMap(Mat& reliabilityMap)
- //
- /**
- * Get the reliability map computed from the wrapped phase map.
- *
- * param reliabilityMap Image where the reliability map is stored.
- */
- public void getInverseReliabilityMap(Mat reliabilityMap)
- {
- ThrowIfDisposed();
- if (reliabilityMap != null) reliabilityMap.ThrowIfDisposed();
- phase_1unwrapping_HistogramPhaseUnwrapping_getInverseReliabilityMap_10(nativeObj, reliabilityMap.nativeObj);
- }
- #if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
- const string LIBNAME = "__Internal";
- #else
- const string LIBNAME = "opencvforunity";
- #endif
- // C++: static Ptr_HistogramPhaseUnwrapping cv::phase_unwrapping::HistogramPhaseUnwrapping::create(HistogramPhaseUnwrapping_Params parameters = HistogramPhaseUnwrapping::Params())
- [DllImport(LIBNAME)]
- private static extern IntPtr phase_1unwrapping_HistogramPhaseUnwrapping_create_10(IntPtr parameters_nativeObj);
- [DllImport(LIBNAME)]
- private static extern IntPtr phase_1unwrapping_HistogramPhaseUnwrapping_create_11();
- // C++: void cv::phase_unwrapping::HistogramPhaseUnwrapping::getInverseReliabilityMap(Mat& reliabilityMap)
- [DllImport(LIBNAME)]
- private static extern void phase_1unwrapping_HistogramPhaseUnwrapping_getInverseReliabilityMap_10(IntPtr nativeObj, IntPtr reliabilityMap_nativeObj);
- // native support for java finalize()
- [DllImport(LIBNAME)]
- private static extern void phase_1unwrapping_HistogramPhaseUnwrapping_delete(IntPtr nativeObj);
- }
- }
- #endif
|