LBPHFaceRecognizer.cs 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701
  1. using OpenCVForUnity.CoreModule;
  2. using OpenCVForUnity.UtilsModule;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Runtime.InteropServices;
  6. namespace OpenCVForUnity.FaceModule
  7. {
  8. // C++: class LBPHFaceRecognizer
  9. public class LBPHFaceRecognizer : FaceRecognizer
  10. {
  11. protected override void Dispose(bool disposing)
  12. {
  13. try
  14. {
  15. if (disposing)
  16. {
  17. }
  18. if (IsEnabledDispose)
  19. {
  20. if (nativeObj != IntPtr.Zero)
  21. face_LBPHFaceRecognizer_delete(nativeObj);
  22. nativeObj = IntPtr.Zero;
  23. }
  24. }
  25. finally
  26. {
  27. base.Dispose(disposing);
  28. }
  29. }
  30. protected internal LBPHFaceRecognizer(IntPtr addr) : base(addr) { }
  31. // internal usage only
  32. public static new LBPHFaceRecognizer __fromPtr__(IntPtr addr) { return new LBPHFaceRecognizer(addr); }
  33. //
  34. // C++: int cv::face::LBPHFaceRecognizer::getGridX()
  35. //
  36. /**
  37. * SEE: setGridX
  38. * return automatically generated
  39. */
  40. public int getGridX()
  41. {
  42. ThrowIfDisposed();
  43. return face_LBPHFaceRecognizer_getGridX_10(nativeObj);
  44. }
  45. //
  46. // C++: void cv::face::LBPHFaceRecognizer::setGridX(int val)
  47. //
  48. /**
  49. * getGridX SEE: getGridX
  50. * param val automatically generated
  51. */
  52. public void setGridX(int val)
  53. {
  54. ThrowIfDisposed();
  55. face_LBPHFaceRecognizer_setGridX_10(nativeObj, val);
  56. }
  57. //
  58. // C++: int cv::face::LBPHFaceRecognizer::getGridY()
  59. //
  60. /**
  61. * SEE: setGridY
  62. * return automatically generated
  63. */
  64. public int getGridY()
  65. {
  66. ThrowIfDisposed();
  67. return face_LBPHFaceRecognizer_getGridY_10(nativeObj);
  68. }
  69. //
  70. // C++: void cv::face::LBPHFaceRecognizer::setGridY(int val)
  71. //
  72. /**
  73. * getGridY SEE: getGridY
  74. * param val automatically generated
  75. */
  76. public void setGridY(int val)
  77. {
  78. ThrowIfDisposed();
  79. face_LBPHFaceRecognizer_setGridY_10(nativeObj, val);
  80. }
  81. //
  82. // C++: int cv::face::LBPHFaceRecognizer::getRadius()
  83. //
  84. /**
  85. * SEE: setRadius
  86. * return automatically generated
  87. */
  88. public int getRadius()
  89. {
  90. ThrowIfDisposed();
  91. return face_LBPHFaceRecognizer_getRadius_10(nativeObj);
  92. }
  93. //
  94. // C++: void cv::face::LBPHFaceRecognizer::setRadius(int val)
  95. //
  96. /**
  97. * getRadius SEE: getRadius
  98. * param val automatically generated
  99. */
  100. public void setRadius(int val)
  101. {
  102. ThrowIfDisposed();
  103. face_LBPHFaceRecognizer_setRadius_10(nativeObj, val);
  104. }
  105. //
  106. // C++: int cv::face::LBPHFaceRecognizer::getNeighbors()
  107. //
  108. /**
  109. * SEE: setNeighbors
  110. * return automatically generated
  111. */
  112. public int getNeighbors()
  113. {
  114. ThrowIfDisposed();
  115. return face_LBPHFaceRecognizer_getNeighbors_10(nativeObj);
  116. }
  117. //
  118. // C++: void cv::face::LBPHFaceRecognizer::setNeighbors(int val)
  119. //
  120. /**
  121. * getNeighbors SEE: getNeighbors
  122. * param val automatically generated
  123. */
  124. public void setNeighbors(int val)
  125. {
  126. ThrowIfDisposed();
  127. face_LBPHFaceRecognizer_setNeighbors_10(nativeObj, val);
  128. }
  129. //
  130. // C++: double cv::face::LBPHFaceRecognizer::getThreshold()
  131. //
  132. /**
  133. * SEE: setThreshold
  134. * return automatically generated
  135. */
  136. public double getThreshold()
  137. {
  138. ThrowIfDisposed();
  139. return face_LBPHFaceRecognizer_getThreshold_10(nativeObj);
  140. }
  141. //
  142. // C++: void cv::face::LBPHFaceRecognizer::setThreshold(double val)
  143. //
  144. /**
  145. * getThreshold SEE: getThreshold
  146. * param val automatically generated
  147. */
  148. public void setThreshold(double val)
  149. {
  150. ThrowIfDisposed();
  151. face_LBPHFaceRecognizer_setThreshold_10(nativeObj, val);
  152. }
  153. //
  154. // C++: vector_Mat cv::face::LBPHFaceRecognizer::getHistograms()
  155. //
  156. public List<Mat> getHistograms()
  157. {
  158. ThrowIfDisposed();
  159. List<Mat> retVal = new List<Mat>();
  160. Mat retValMat = new Mat(DisposableObject.ThrowIfNullIntPtr(face_LBPHFaceRecognizer_getHistograms_10(nativeObj)));
  161. Converters.Mat_to_vector_Mat(retValMat, retVal);
  162. return retVal;
  163. }
  164. //
  165. // C++: Mat cv::face::LBPHFaceRecognizer::getLabels()
  166. //
  167. public Mat getLabels()
  168. {
  169. ThrowIfDisposed();
  170. return new Mat(DisposableObject.ThrowIfNullIntPtr(face_LBPHFaceRecognizer_getLabels_10(nativeObj)));
  171. }
  172. //
  173. // C++: static Ptr_LBPHFaceRecognizer cv::face::LBPHFaceRecognizer::create(int radius = 1, int neighbors = 8, int grid_x = 8, int grid_y = 8, double threshold = DBL_MAX)
  174. //
  175. /**
  176. * param radius The radius used for building the Circular Local Binary Pattern. The greater the
  177. * radius, the smoother the image but more spatial information you can get.
  178. * param neighbors The number of sample points to build a Circular Local Binary Pattern from. An
  179. * appropriate value is to use {code 8} sample points. Keep in mind: the more sample points you include,
  180. * the higher the computational cost.
  181. * param grid_x The number of cells in the horizontal direction, 8 is a common value used in
  182. * publications. The more cells, the finer the grid, the higher the dimensionality of the resulting
  183. * feature vector.
  184. * param grid_y The number of cells in the vertical direction, 8 is a common value used in
  185. * publications. The more cells, the finer the grid, the higher the dimensionality of the resulting
  186. * feature vector.
  187. * param threshold The threshold applied in the prediction. If the distance to the nearest neighbor
  188. * is larger than the threshold, this method returns -1.
  189. *
  190. * ### Notes:
  191. *
  192. * <ul>
  193. * <li>
  194. * The Circular Local Binary Patterns (used in training and prediction) expect the data given as
  195. * grayscale images, use cvtColor to convert between the color spaces.
  196. * </li>
  197. * <li>
  198. * This model supports updating.
  199. * </li>
  200. * </ul>
  201. *
  202. * ### Model internal data:
  203. *
  204. * <ul>
  205. * <li>
  206. * radius see LBPHFaceRecognizer::create.
  207. * </li>
  208. * <li>
  209. * neighbors see LBPHFaceRecognizer::create.
  210. * </li>
  211. * <li>
  212. * grid_x see LLBPHFaceRecognizer::create.
  213. * </li>
  214. * <li>
  215. * grid_y see LBPHFaceRecognizer::create.
  216. * </li>
  217. * <li>
  218. * threshold see LBPHFaceRecognizer::create.
  219. * </li>
  220. * <li>
  221. * histograms Local Binary Patterns Histograms calculated from the given training data (empty if
  222. * none was given).
  223. * </li>
  224. * <li>
  225. * labels Labels corresponding to the calculated Local Binary Patterns Histograms.
  226. * </li>
  227. * </ul>
  228. * return automatically generated
  229. */
  230. public static LBPHFaceRecognizer create(int radius, int neighbors, int grid_x, int grid_y, double threshold)
  231. {
  232. return LBPHFaceRecognizer.__fromPtr__(DisposableObject.ThrowIfNullIntPtr(face_LBPHFaceRecognizer_create_10(radius, neighbors, grid_x, grid_y, threshold)));
  233. }
  234. /**
  235. * param radius The radius used for building the Circular Local Binary Pattern. The greater the
  236. * radius, the smoother the image but more spatial information you can get.
  237. * param neighbors The number of sample points to build a Circular Local Binary Pattern from. An
  238. * appropriate value is to use {code 8} sample points. Keep in mind: the more sample points you include,
  239. * the higher the computational cost.
  240. * param grid_x The number of cells in the horizontal direction, 8 is a common value used in
  241. * publications. The more cells, the finer the grid, the higher the dimensionality of the resulting
  242. * feature vector.
  243. * param grid_y The number of cells in the vertical direction, 8 is a common value used in
  244. * publications. The more cells, the finer the grid, the higher the dimensionality of the resulting
  245. * feature vector.
  246. * is larger than the threshold, this method returns -1.
  247. *
  248. * ### Notes:
  249. *
  250. * <ul>
  251. * <li>
  252. * The Circular Local Binary Patterns (used in training and prediction) expect the data given as
  253. * grayscale images, use cvtColor to convert between the color spaces.
  254. * </li>
  255. * <li>
  256. * This model supports updating.
  257. * </li>
  258. * </ul>
  259. *
  260. * ### Model internal data:
  261. *
  262. * <ul>
  263. * <li>
  264. * radius see LBPHFaceRecognizer::create.
  265. * </li>
  266. * <li>
  267. * neighbors see LBPHFaceRecognizer::create.
  268. * </li>
  269. * <li>
  270. * grid_x see LLBPHFaceRecognizer::create.
  271. * </li>
  272. * <li>
  273. * grid_y see LBPHFaceRecognizer::create.
  274. * </li>
  275. * <li>
  276. * threshold see LBPHFaceRecognizer::create.
  277. * </li>
  278. * <li>
  279. * histograms Local Binary Patterns Histograms calculated from the given training data (empty if
  280. * none was given).
  281. * </li>
  282. * <li>
  283. * labels Labels corresponding to the calculated Local Binary Patterns Histograms.
  284. * </li>
  285. * </ul>
  286. * return automatically generated
  287. */
  288. public static LBPHFaceRecognizer create(int radius, int neighbors, int grid_x, int grid_y)
  289. {
  290. return LBPHFaceRecognizer.__fromPtr__(DisposableObject.ThrowIfNullIntPtr(face_LBPHFaceRecognizer_create_11(radius, neighbors, grid_x, grid_y)));
  291. }
  292. /**
  293. * param radius The radius used for building the Circular Local Binary Pattern. The greater the
  294. * radius, the smoother the image but more spatial information you can get.
  295. * param neighbors The number of sample points to build a Circular Local Binary Pattern from. An
  296. * appropriate value is to use {code 8} sample points. Keep in mind: the more sample points you include,
  297. * the higher the computational cost.
  298. * param grid_x The number of cells in the horizontal direction, 8 is a common value used in
  299. * publications. The more cells, the finer the grid, the higher the dimensionality of the resulting
  300. * feature vector.
  301. * publications. The more cells, the finer the grid, the higher the dimensionality of the resulting
  302. * feature vector.
  303. * is larger than the threshold, this method returns -1.
  304. *
  305. * ### Notes:
  306. *
  307. * <ul>
  308. * <li>
  309. * The Circular Local Binary Patterns (used in training and prediction) expect the data given as
  310. * grayscale images, use cvtColor to convert between the color spaces.
  311. * </li>
  312. * <li>
  313. * This model supports updating.
  314. * </li>
  315. * </ul>
  316. *
  317. * ### Model internal data:
  318. *
  319. * <ul>
  320. * <li>
  321. * radius see LBPHFaceRecognizer::create.
  322. * </li>
  323. * <li>
  324. * neighbors see LBPHFaceRecognizer::create.
  325. * </li>
  326. * <li>
  327. * grid_x see LLBPHFaceRecognizer::create.
  328. * </li>
  329. * <li>
  330. * grid_y see LBPHFaceRecognizer::create.
  331. * </li>
  332. * <li>
  333. * threshold see LBPHFaceRecognizer::create.
  334. * </li>
  335. * <li>
  336. * histograms Local Binary Patterns Histograms calculated from the given training data (empty if
  337. * none was given).
  338. * </li>
  339. * <li>
  340. * labels Labels corresponding to the calculated Local Binary Patterns Histograms.
  341. * </li>
  342. * </ul>
  343. * return automatically generated
  344. */
  345. public static LBPHFaceRecognizer create(int radius, int neighbors, int grid_x)
  346. {
  347. return LBPHFaceRecognizer.__fromPtr__(DisposableObject.ThrowIfNullIntPtr(face_LBPHFaceRecognizer_create_12(radius, neighbors, grid_x)));
  348. }
  349. /**
  350. * param radius The radius used for building the Circular Local Binary Pattern. The greater the
  351. * radius, the smoother the image but more spatial information you can get.
  352. * param neighbors The number of sample points to build a Circular Local Binary Pattern from. An
  353. * appropriate value is to use {code 8} sample points. Keep in mind: the more sample points you include,
  354. * the higher the computational cost.
  355. * publications. The more cells, the finer the grid, the higher the dimensionality of the resulting
  356. * feature vector.
  357. * publications. The more cells, the finer the grid, the higher the dimensionality of the resulting
  358. * feature vector.
  359. * is larger than the threshold, this method returns -1.
  360. *
  361. * ### Notes:
  362. *
  363. * <ul>
  364. * <li>
  365. * The Circular Local Binary Patterns (used in training and prediction) expect the data given as
  366. * grayscale images, use cvtColor to convert between the color spaces.
  367. * </li>
  368. * <li>
  369. * This model supports updating.
  370. * </li>
  371. * </ul>
  372. *
  373. * ### Model internal data:
  374. *
  375. * <ul>
  376. * <li>
  377. * radius see LBPHFaceRecognizer::create.
  378. * </li>
  379. * <li>
  380. * neighbors see LBPHFaceRecognizer::create.
  381. * </li>
  382. * <li>
  383. * grid_x see LLBPHFaceRecognizer::create.
  384. * </li>
  385. * <li>
  386. * grid_y see LBPHFaceRecognizer::create.
  387. * </li>
  388. * <li>
  389. * threshold see LBPHFaceRecognizer::create.
  390. * </li>
  391. * <li>
  392. * histograms Local Binary Patterns Histograms calculated from the given training data (empty if
  393. * none was given).
  394. * </li>
  395. * <li>
  396. * labels Labels corresponding to the calculated Local Binary Patterns Histograms.
  397. * </li>
  398. * </ul>
  399. * return automatically generated
  400. */
  401. public static LBPHFaceRecognizer create(int radius, int neighbors)
  402. {
  403. return LBPHFaceRecognizer.__fromPtr__(DisposableObject.ThrowIfNullIntPtr(face_LBPHFaceRecognizer_create_13(radius, neighbors)));
  404. }
  405. /**
  406. * param radius The radius used for building the Circular Local Binary Pattern. The greater the
  407. * radius, the smoother the image but more spatial information you can get.
  408. * appropriate value is to use {code 8} sample points. Keep in mind: the more sample points you include,
  409. * the higher the computational cost.
  410. * publications. The more cells, the finer the grid, the higher the dimensionality of the resulting
  411. * feature vector.
  412. * publications. The more cells, the finer the grid, the higher the dimensionality of the resulting
  413. * feature vector.
  414. * is larger than the threshold, this method returns -1.
  415. *
  416. * ### Notes:
  417. *
  418. * <ul>
  419. * <li>
  420. * The Circular Local Binary Patterns (used in training and prediction) expect the data given as
  421. * grayscale images, use cvtColor to convert between the color spaces.
  422. * </li>
  423. * <li>
  424. * This model supports updating.
  425. * </li>
  426. * </ul>
  427. *
  428. * ### Model internal data:
  429. *
  430. * <ul>
  431. * <li>
  432. * radius see LBPHFaceRecognizer::create.
  433. * </li>
  434. * <li>
  435. * neighbors see LBPHFaceRecognizer::create.
  436. * </li>
  437. * <li>
  438. * grid_x see LLBPHFaceRecognizer::create.
  439. * </li>
  440. * <li>
  441. * grid_y see LBPHFaceRecognizer::create.
  442. * </li>
  443. * <li>
  444. * threshold see LBPHFaceRecognizer::create.
  445. * </li>
  446. * <li>
  447. * histograms Local Binary Patterns Histograms calculated from the given training data (empty if
  448. * none was given).
  449. * </li>
  450. * <li>
  451. * labels Labels corresponding to the calculated Local Binary Patterns Histograms.
  452. * </li>
  453. * </ul>
  454. * return automatically generated
  455. */
  456. public static LBPHFaceRecognizer create(int radius)
  457. {
  458. return LBPHFaceRecognizer.__fromPtr__(DisposableObject.ThrowIfNullIntPtr(face_LBPHFaceRecognizer_create_14(radius)));
  459. }
  460. /**
  461. * radius, the smoother the image but more spatial information you can get.
  462. * appropriate value is to use {code 8} sample points. Keep in mind: the more sample points you include,
  463. * the higher the computational cost.
  464. * publications. The more cells, the finer the grid, the higher the dimensionality of the resulting
  465. * feature vector.
  466. * publications. The more cells, the finer the grid, the higher the dimensionality of the resulting
  467. * feature vector.
  468. * is larger than the threshold, this method returns -1.
  469. *
  470. * ### Notes:
  471. *
  472. * <ul>
  473. * <li>
  474. * The Circular Local Binary Patterns (used in training and prediction) expect the data given as
  475. * grayscale images, use cvtColor to convert between the color spaces.
  476. * </li>
  477. * <li>
  478. * This model supports updating.
  479. * </li>
  480. * </ul>
  481. *
  482. * ### Model internal data:
  483. *
  484. * <ul>
  485. * <li>
  486. * radius see LBPHFaceRecognizer::create.
  487. * </li>
  488. * <li>
  489. * neighbors see LBPHFaceRecognizer::create.
  490. * </li>
  491. * <li>
  492. * grid_x see LLBPHFaceRecognizer::create.
  493. * </li>
  494. * <li>
  495. * grid_y see LBPHFaceRecognizer::create.
  496. * </li>
  497. * <li>
  498. * threshold see LBPHFaceRecognizer::create.
  499. * </li>
  500. * <li>
  501. * histograms Local Binary Patterns Histograms calculated from the given training data (empty if
  502. * none was given).
  503. * </li>
  504. * <li>
  505. * labels Labels corresponding to the calculated Local Binary Patterns Histograms.
  506. * </li>
  507. * </ul>
  508. * return automatically generated
  509. */
  510. public static LBPHFaceRecognizer create()
  511. {
  512. return LBPHFaceRecognizer.__fromPtr__(DisposableObject.ThrowIfNullIntPtr(face_LBPHFaceRecognizer_create_15()));
  513. }
  514. #if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
  515. const string LIBNAME = "__Internal";
  516. #else
  517. const string LIBNAME = "opencvforunity";
  518. #endif
  519. // C++: int cv::face::LBPHFaceRecognizer::getGridX()
  520. [DllImport(LIBNAME)]
  521. private static extern int face_LBPHFaceRecognizer_getGridX_10(IntPtr nativeObj);
  522. // C++: void cv::face::LBPHFaceRecognizer::setGridX(int val)
  523. [DllImport(LIBNAME)]
  524. private static extern void face_LBPHFaceRecognizer_setGridX_10(IntPtr nativeObj, int val);
  525. // C++: int cv::face::LBPHFaceRecognizer::getGridY()
  526. [DllImport(LIBNAME)]
  527. private static extern int face_LBPHFaceRecognizer_getGridY_10(IntPtr nativeObj);
  528. // C++: void cv::face::LBPHFaceRecognizer::setGridY(int val)
  529. [DllImport(LIBNAME)]
  530. private static extern void face_LBPHFaceRecognizer_setGridY_10(IntPtr nativeObj, int val);
  531. // C++: int cv::face::LBPHFaceRecognizer::getRadius()
  532. [DllImport(LIBNAME)]
  533. private static extern int face_LBPHFaceRecognizer_getRadius_10(IntPtr nativeObj);
  534. // C++: void cv::face::LBPHFaceRecognizer::setRadius(int val)
  535. [DllImport(LIBNAME)]
  536. private static extern void face_LBPHFaceRecognizer_setRadius_10(IntPtr nativeObj, int val);
  537. // C++: int cv::face::LBPHFaceRecognizer::getNeighbors()
  538. [DllImport(LIBNAME)]
  539. private static extern int face_LBPHFaceRecognizer_getNeighbors_10(IntPtr nativeObj);
  540. // C++: void cv::face::LBPHFaceRecognizer::setNeighbors(int val)
  541. [DllImport(LIBNAME)]
  542. private static extern void face_LBPHFaceRecognizer_setNeighbors_10(IntPtr nativeObj, int val);
  543. // C++: double cv::face::LBPHFaceRecognizer::getThreshold()
  544. [DllImport(LIBNAME)]
  545. private static extern double face_LBPHFaceRecognizer_getThreshold_10(IntPtr nativeObj);
  546. // C++: void cv::face::LBPHFaceRecognizer::setThreshold(double val)
  547. [DllImport(LIBNAME)]
  548. private static extern void face_LBPHFaceRecognizer_setThreshold_10(IntPtr nativeObj, double val);
  549. // C++: vector_Mat cv::face::LBPHFaceRecognizer::getHistograms()
  550. [DllImport(LIBNAME)]
  551. private static extern IntPtr face_LBPHFaceRecognizer_getHistograms_10(IntPtr nativeObj);
  552. // C++: Mat cv::face::LBPHFaceRecognizer::getLabels()
  553. [DllImport(LIBNAME)]
  554. private static extern IntPtr face_LBPHFaceRecognizer_getLabels_10(IntPtr nativeObj);
  555. // C++: static Ptr_LBPHFaceRecognizer cv::face::LBPHFaceRecognizer::create(int radius = 1, int neighbors = 8, int grid_x = 8, int grid_y = 8, double threshold = DBL_MAX)
  556. [DllImport(LIBNAME)]
  557. private static extern IntPtr face_LBPHFaceRecognizer_create_10(int radius, int neighbors, int grid_x, int grid_y, double threshold);
  558. [DllImport(LIBNAME)]
  559. private static extern IntPtr face_LBPHFaceRecognizer_create_11(int radius, int neighbors, int grid_x, int grid_y);
  560. [DllImport(LIBNAME)]
  561. private static extern IntPtr face_LBPHFaceRecognizer_create_12(int radius, int neighbors, int grid_x);
  562. [DllImport(LIBNAME)]
  563. private static extern IntPtr face_LBPHFaceRecognizer_create_13(int radius, int neighbors);
  564. [DllImport(LIBNAME)]
  565. private static extern IntPtr face_LBPHFaceRecognizer_create_14(int radius);
  566. [DllImport(LIBNAME)]
  567. private static extern IntPtr face_LBPHFaceRecognizer_create_15();
  568. // native support for java finalize()
  569. [DllImport(LIBNAME)]
  570. private static extern void face_LBPHFaceRecognizer_delete(IntPtr nativeObj);
  571. }
  572. }