GFTTDetector.cs 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454
  1. using OpenCVForUnity.CoreModule;
  2. using OpenCVForUnity.UtilsModule;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Runtime.InteropServices;
  6. namespace OpenCVForUnity.Features2dModule
  7. {
  8. // C++: class GFTTDetector
  9. /**
  10. * Wrapping class for feature detection using the goodFeaturesToTrack function. :
  11. */
  12. public class GFTTDetector : Feature2D
  13. {
  14. protected override void Dispose(bool disposing)
  15. {
  16. try
  17. {
  18. if (disposing)
  19. {
  20. }
  21. if (IsEnabledDispose)
  22. {
  23. if (nativeObj != IntPtr.Zero)
  24. features2d_GFTTDetector_delete(nativeObj);
  25. nativeObj = IntPtr.Zero;
  26. }
  27. }
  28. finally
  29. {
  30. base.Dispose(disposing);
  31. }
  32. }
  33. protected internal GFTTDetector(IntPtr addr) : base(addr) { }
  34. // internal usage only
  35. public static new GFTTDetector __fromPtr__(IntPtr addr) { return new GFTTDetector(addr); }
  36. //
  37. // C++: static Ptr_GFTTDetector cv::GFTTDetector::create(int maxCorners = 1000, double qualityLevel = 0.01, double minDistance = 1, int blockSize = 3, bool useHarrisDetector = false, double k = 0.04)
  38. //
  39. public static GFTTDetector create(int maxCorners, double qualityLevel, double minDistance, int blockSize, bool useHarrisDetector, double k)
  40. {
  41. return GFTTDetector.__fromPtr__(DisposableObject.ThrowIfNullIntPtr(features2d_GFTTDetector_create_10(maxCorners, qualityLevel, minDistance, blockSize, useHarrisDetector, k)));
  42. }
  43. public static GFTTDetector create(int maxCorners, double qualityLevel, double minDistance, int blockSize, bool useHarrisDetector)
  44. {
  45. return GFTTDetector.__fromPtr__(DisposableObject.ThrowIfNullIntPtr(features2d_GFTTDetector_create_11(maxCorners, qualityLevel, minDistance, blockSize, useHarrisDetector)));
  46. }
  47. public static GFTTDetector create(int maxCorners, double qualityLevel, double minDistance, int blockSize)
  48. {
  49. return GFTTDetector.__fromPtr__(DisposableObject.ThrowIfNullIntPtr(features2d_GFTTDetector_create_12(maxCorners, qualityLevel, minDistance, blockSize)));
  50. }
  51. public static GFTTDetector create(int maxCorners, double qualityLevel, double minDistance)
  52. {
  53. return GFTTDetector.__fromPtr__(DisposableObject.ThrowIfNullIntPtr(features2d_GFTTDetector_create_13(maxCorners, qualityLevel, minDistance)));
  54. }
  55. public static GFTTDetector create(int maxCorners, double qualityLevel)
  56. {
  57. return GFTTDetector.__fromPtr__(DisposableObject.ThrowIfNullIntPtr(features2d_GFTTDetector_create_14(maxCorners, qualityLevel)));
  58. }
  59. public static GFTTDetector create(int maxCorners)
  60. {
  61. return GFTTDetector.__fromPtr__(DisposableObject.ThrowIfNullIntPtr(features2d_GFTTDetector_create_15(maxCorners)));
  62. }
  63. public static GFTTDetector create()
  64. {
  65. return GFTTDetector.__fromPtr__(DisposableObject.ThrowIfNullIntPtr(features2d_GFTTDetector_create_16()));
  66. }
  67. //
  68. // C++: static Ptr_GFTTDetector cv::GFTTDetector::create(int maxCorners, double qualityLevel, double minDistance, int blockSize, int gradiantSize, bool useHarrisDetector = false, double k = 0.04)
  69. //
  70. public static GFTTDetector create(int maxCorners, double qualityLevel, double minDistance, int blockSize, int gradiantSize, bool useHarrisDetector, double k)
  71. {
  72. return GFTTDetector.__fromPtr__(DisposableObject.ThrowIfNullIntPtr(features2d_GFTTDetector_create_17(maxCorners, qualityLevel, minDistance, blockSize, gradiantSize, useHarrisDetector, k)));
  73. }
  74. public static GFTTDetector create(int maxCorners, double qualityLevel, double minDistance, int blockSize, int gradiantSize, bool useHarrisDetector)
  75. {
  76. return GFTTDetector.__fromPtr__(DisposableObject.ThrowIfNullIntPtr(features2d_GFTTDetector_create_18(maxCorners, qualityLevel, minDistance, blockSize, gradiantSize, useHarrisDetector)));
  77. }
  78. public static GFTTDetector create(int maxCorners, double qualityLevel, double minDistance, int blockSize, int gradiantSize)
  79. {
  80. return GFTTDetector.__fromPtr__(DisposableObject.ThrowIfNullIntPtr(features2d_GFTTDetector_create_19(maxCorners, qualityLevel, minDistance, blockSize, gradiantSize)));
  81. }
  82. //
  83. // C++: void cv::GFTTDetector::setMaxFeatures(int maxFeatures)
  84. //
  85. public void setMaxFeatures(int maxFeatures)
  86. {
  87. ThrowIfDisposed();
  88. features2d_GFTTDetector_setMaxFeatures_10(nativeObj, maxFeatures);
  89. }
  90. //
  91. // C++: int cv::GFTTDetector::getMaxFeatures()
  92. //
  93. public int getMaxFeatures()
  94. {
  95. ThrowIfDisposed();
  96. return features2d_GFTTDetector_getMaxFeatures_10(nativeObj);
  97. }
  98. //
  99. // C++: void cv::GFTTDetector::setQualityLevel(double qlevel)
  100. //
  101. public void setQualityLevel(double qlevel)
  102. {
  103. ThrowIfDisposed();
  104. features2d_GFTTDetector_setQualityLevel_10(nativeObj, qlevel);
  105. }
  106. //
  107. // C++: double cv::GFTTDetector::getQualityLevel()
  108. //
  109. public double getQualityLevel()
  110. {
  111. ThrowIfDisposed();
  112. return features2d_GFTTDetector_getQualityLevel_10(nativeObj);
  113. }
  114. //
  115. // C++: void cv::GFTTDetector::setMinDistance(double minDistance)
  116. //
  117. public void setMinDistance(double minDistance)
  118. {
  119. ThrowIfDisposed();
  120. features2d_GFTTDetector_setMinDistance_10(nativeObj, minDistance);
  121. }
  122. //
  123. // C++: double cv::GFTTDetector::getMinDistance()
  124. //
  125. public double getMinDistance()
  126. {
  127. ThrowIfDisposed();
  128. return features2d_GFTTDetector_getMinDistance_10(nativeObj);
  129. }
  130. //
  131. // C++: void cv::GFTTDetector::setBlockSize(int blockSize)
  132. //
  133. public void setBlockSize(int blockSize)
  134. {
  135. ThrowIfDisposed();
  136. features2d_GFTTDetector_setBlockSize_10(nativeObj, blockSize);
  137. }
  138. //
  139. // C++: int cv::GFTTDetector::getBlockSize()
  140. //
  141. public int getBlockSize()
  142. {
  143. ThrowIfDisposed();
  144. return features2d_GFTTDetector_getBlockSize_10(nativeObj);
  145. }
  146. //
  147. // C++: void cv::GFTTDetector::setGradientSize(int gradientSize_)
  148. //
  149. public void setGradientSize(int gradientSize_)
  150. {
  151. ThrowIfDisposed();
  152. features2d_GFTTDetector_setGradientSize_10(nativeObj, gradientSize_);
  153. }
  154. //
  155. // C++: int cv::GFTTDetector::getGradientSize()
  156. //
  157. public int getGradientSize()
  158. {
  159. ThrowIfDisposed();
  160. return features2d_GFTTDetector_getGradientSize_10(nativeObj);
  161. }
  162. //
  163. // C++: void cv::GFTTDetector::setHarrisDetector(bool val)
  164. //
  165. public void setHarrisDetector(bool val)
  166. {
  167. ThrowIfDisposed();
  168. features2d_GFTTDetector_setHarrisDetector_10(nativeObj, val);
  169. }
  170. //
  171. // C++: bool cv::GFTTDetector::getHarrisDetector()
  172. //
  173. public bool getHarrisDetector()
  174. {
  175. ThrowIfDisposed();
  176. return features2d_GFTTDetector_getHarrisDetector_10(nativeObj);
  177. }
  178. //
  179. // C++: void cv::GFTTDetector::setK(double k)
  180. //
  181. public void setK(double k)
  182. {
  183. ThrowIfDisposed();
  184. features2d_GFTTDetector_setK_10(nativeObj, k);
  185. }
  186. //
  187. // C++: double cv::GFTTDetector::getK()
  188. //
  189. public double getK()
  190. {
  191. ThrowIfDisposed();
  192. return features2d_GFTTDetector_getK_10(nativeObj);
  193. }
  194. //
  195. // C++: String cv::GFTTDetector::getDefaultName()
  196. //
  197. public override string getDefaultName()
  198. {
  199. ThrowIfDisposed();
  200. string retVal = Marshal.PtrToStringAnsi(DisposableObject.ThrowIfNullIntPtr(features2d_GFTTDetector_getDefaultName_10(nativeObj)));
  201. return retVal;
  202. }
  203. #if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
  204. const string LIBNAME = "__Internal";
  205. #else
  206. const string LIBNAME = "opencvforunity";
  207. #endif
  208. // C++: static Ptr_GFTTDetector cv::GFTTDetector::create(int maxCorners = 1000, double qualityLevel = 0.01, double minDistance = 1, int blockSize = 3, bool useHarrisDetector = false, double k = 0.04)
  209. [DllImport(LIBNAME)]
  210. private static extern IntPtr features2d_GFTTDetector_create_10(int maxCorners, double qualityLevel, double minDistance, int blockSize, [MarshalAs(UnmanagedType.U1)] bool useHarrisDetector, double k);
  211. [DllImport(LIBNAME)]
  212. private static extern IntPtr features2d_GFTTDetector_create_11(int maxCorners, double qualityLevel, double minDistance, int blockSize, [MarshalAs(UnmanagedType.U1)] bool useHarrisDetector);
  213. [DllImport(LIBNAME)]
  214. private static extern IntPtr features2d_GFTTDetector_create_12(int maxCorners, double qualityLevel, double minDistance, int blockSize);
  215. [DllImport(LIBNAME)]
  216. private static extern IntPtr features2d_GFTTDetector_create_13(int maxCorners, double qualityLevel, double minDistance);
  217. [DllImport(LIBNAME)]
  218. private static extern IntPtr features2d_GFTTDetector_create_14(int maxCorners, double qualityLevel);
  219. [DllImport(LIBNAME)]
  220. private static extern IntPtr features2d_GFTTDetector_create_15(int maxCorners);
  221. [DllImport(LIBNAME)]
  222. private static extern IntPtr features2d_GFTTDetector_create_16();
  223. // C++: static Ptr_GFTTDetector cv::GFTTDetector::create(int maxCorners, double qualityLevel, double minDistance, int blockSize, int gradiantSize, bool useHarrisDetector = false, double k = 0.04)
  224. [DllImport(LIBNAME)]
  225. private static extern IntPtr features2d_GFTTDetector_create_17(int maxCorners, double qualityLevel, double minDistance, int blockSize, int gradiantSize, [MarshalAs(UnmanagedType.U1)] bool useHarrisDetector, double k);
  226. [DllImport(LIBNAME)]
  227. private static extern IntPtr features2d_GFTTDetector_create_18(int maxCorners, double qualityLevel, double minDistance, int blockSize, int gradiantSize, [MarshalAs(UnmanagedType.U1)] bool useHarrisDetector);
  228. [DllImport(LIBNAME)]
  229. private static extern IntPtr features2d_GFTTDetector_create_19(int maxCorners, double qualityLevel, double minDistance, int blockSize, int gradiantSize);
  230. // C++: void cv::GFTTDetector::setMaxFeatures(int maxFeatures)
  231. [DllImport(LIBNAME)]
  232. private static extern void features2d_GFTTDetector_setMaxFeatures_10(IntPtr nativeObj, int maxFeatures);
  233. // C++: int cv::GFTTDetector::getMaxFeatures()
  234. [DllImport(LIBNAME)]
  235. private static extern int features2d_GFTTDetector_getMaxFeatures_10(IntPtr nativeObj);
  236. // C++: void cv::GFTTDetector::setQualityLevel(double qlevel)
  237. [DllImport(LIBNAME)]
  238. private static extern void features2d_GFTTDetector_setQualityLevel_10(IntPtr nativeObj, double qlevel);
  239. // C++: double cv::GFTTDetector::getQualityLevel()
  240. [DllImport(LIBNAME)]
  241. private static extern double features2d_GFTTDetector_getQualityLevel_10(IntPtr nativeObj);
  242. // C++: void cv::GFTTDetector::setMinDistance(double minDistance)
  243. [DllImport(LIBNAME)]
  244. private static extern void features2d_GFTTDetector_setMinDistance_10(IntPtr nativeObj, double minDistance);
  245. // C++: double cv::GFTTDetector::getMinDistance()
  246. [DllImport(LIBNAME)]
  247. private static extern double features2d_GFTTDetector_getMinDistance_10(IntPtr nativeObj);
  248. // C++: void cv::GFTTDetector::setBlockSize(int blockSize)
  249. [DllImport(LIBNAME)]
  250. private static extern void features2d_GFTTDetector_setBlockSize_10(IntPtr nativeObj, int blockSize);
  251. // C++: int cv::GFTTDetector::getBlockSize()
  252. [DllImport(LIBNAME)]
  253. private static extern int features2d_GFTTDetector_getBlockSize_10(IntPtr nativeObj);
  254. // C++: void cv::GFTTDetector::setGradientSize(int gradientSize_)
  255. [DllImport(LIBNAME)]
  256. private static extern void features2d_GFTTDetector_setGradientSize_10(IntPtr nativeObj, int gradientSize_);
  257. // C++: int cv::GFTTDetector::getGradientSize()
  258. [DllImport(LIBNAME)]
  259. private static extern int features2d_GFTTDetector_getGradientSize_10(IntPtr nativeObj);
  260. // C++: void cv::GFTTDetector::setHarrisDetector(bool val)
  261. [DllImport(LIBNAME)]
  262. private static extern void features2d_GFTTDetector_setHarrisDetector_10(IntPtr nativeObj, [MarshalAs(UnmanagedType.U1)] bool val);
  263. // C++: bool cv::GFTTDetector::getHarrisDetector()
  264. [DllImport(LIBNAME)]
  265. [return: MarshalAs(UnmanagedType.U1)]
  266. private static extern bool features2d_GFTTDetector_getHarrisDetector_10(IntPtr nativeObj);
  267. // C++: void cv::GFTTDetector::setK(double k)
  268. [DllImport(LIBNAME)]
  269. private static extern void features2d_GFTTDetector_setK_10(IntPtr nativeObj, double k);
  270. // C++: double cv::GFTTDetector::getK()
  271. [DllImport(LIBNAME)]
  272. private static extern double features2d_GFTTDetector_getK_10(IntPtr nativeObj);
  273. // C++: String cv::GFTTDetector::getDefaultName()
  274. [DllImport(LIBNAME)]
  275. private static extern IntPtr features2d_GFTTDetector_getDefaultName_10(IntPtr nativeObj);
  276. // native support for java finalize()
  277. [DllImport(LIBNAME)]
  278. private static extern void features2d_GFTTDetector_delete(IntPtr nativeObj);
  279. }
  280. }