Dnn.cs 44 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121
  1. #if !UNITY_WSA_10_0
  2. using OpenCVForUnity.CoreModule;
  3. using OpenCVForUnity.UtilsModule;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Runtime.InteropServices;
  7. namespace OpenCVForUnity.DnnModule
  8. {
  9. // C++: class Dnn
  10. //javadoc: Dnn
  11. public class Dnn
  12. {
  13. // C++: enum Backend
  14. public const int DNN_BACKEND_DEFAULT = 0;
  15. public const int DNN_BACKEND_HALIDE = 1;
  16. public const int DNN_BACKEND_INFERENCE_ENGINE = 2;
  17. public const int DNN_BACKEND_OPENCV = 3;
  18. public const int DNN_BACKEND_VKCOM = 4;
  19. // C++: enum Target
  20. public const int DNN_TARGET_CPU = 0;
  21. public const int DNN_TARGET_OPENCL = 1;
  22. public const int DNN_TARGET_OPENCL_FP16 = 2;
  23. public const int DNN_TARGET_MYRIAD = 3;
  24. public const int DNN_TARGET_VULKAN = 4;
  25. //
  26. // C++: Mat cv::dnn::blobFromImage(Mat image, double scalefactor = 1.0, Size size = Size(), Scalar mean = Scalar(), bool swapRB = false, bool crop = false, int ddepth = CV_32F)
  27. //
  28. //javadoc: blobFromImage(image, scalefactor, size, mean, swapRB, crop, ddepth)
  29. public static Mat blobFromImage (Mat image, double scalefactor, Size size, Scalar mean, bool swapRB, bool crop, int ddepth)
  30. {
  31. if (image != null)
  32. image.ThrowIfDisposed ();
  33. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  34. Mat retVal = new Mat (dnn_Dnn_blobFromImage_10 (image.nativeObj, scalefactor, size.width, size.height, mean.val [0], mean.val [1], mean.val [2], mean.val [3], swapRB, crop, ddepth));
  35. return retVal;
  36. #else
  37. return null;
  38. #endif
  39. }
  40. //javadoc: blobFromImage(image, scalefactor, size, mean, swapRB, crop)
  41. public static Mat blobFromImage (Mat image, double scalefactor, Size size, Scalar mean, bool swapRB, bool crop)
  42. {
  43. if (image != null)
  44. image.ThrowIfDisposed ();
  45. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  46. Mat retVal = new Mat (dnn_Dnn_blobFromImage_11 (image.nativeObj, scalefactor, size.width, size.height, mean.val [0], mean.val [1], mean.val [2], mean.val [3], swapRB, crop));
  47. return retVal;
  48. #else
  49. return null;
  50. #endif
  51. }
  52. //javadoc: blobFromImage(image, scalefactor, size, mean, swapRB)
  53. public static Mat blobFromImage (Mat image, double scalefactor, Size size, Scalar mean, bool swapRB)
  54. {
  55. if (image != null)
  56. image.ThrowIfDisposed ();
  57. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  58. Mat retVal = new Mat (dnn_Dnn_blobFromImage_12 (image.nativeObj, scalefactor, size.width, size.height, mean.val [0], mean.val [1], mean.val [2], mean.val [3], swapRB));
  59. return retVal;
  60. #else
  61. return null;
  62. #endif
  63. }
  64. //javadoc: blobFromImage(image, scalefactor, size, mean)
  65. public static Mat blobFromImage (Mat image, double scalefactor, Size size, Scalar mean)
  66. {
  67. if (image != null)
  68. image.ThrowIfDisposed ();
  69. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  70. Mat retVal = new Mat (dnn_Dnn_blobFromImage_13 (image.nativeObj, scalefactor, size.width, size.height, mean.val [0], mean.val [1], mean.val [2], mean.val [3]));
  71. return retVal;
  72. #else
  73. return null;
  74. #endif
  75. }
  76. //javadoc: blobFromImage(image, scalefactor, size)
  77. public static Mat blobFromImage (Mat image, double scalefactor, Size size)
  78. {
  79. if (image != null)
  80. image.ThrowIfDisposed ();
  81. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  82. Mat retVal = new Mat (dnn_Dnn_blobFromImage_14 (image.nativeObj, scalefactor, size.width, size.height));
  83. return retVal;
  84. #else
  85. return null;
  86. #endif
  87. }
  88. //javadoc: blobFromImage(image, scalefactor)
  89. public static Mat blobFromImage (Mat image, double scalefactor)
  90. {
  91. if (image != null)
  92. image.ThrowIfDisposed ();
  93. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  94. Mat retVal = new Mat (dnn_Dnn_blobFromImage_15 (image.nativeObj, scalefactor));
  95. return retVal;
  96. #else
  97. return null;
  98. #endif
  99. }
  100. //javadoc: blobFromImage(image)
  101. public static Mat blobFromImage (Mat image)
  102. {
  103. if (image != null)
  104. image.ThrowIfDisposed ();
  105. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  106. Mat retVal = new Mat (dnn_Dnn_blobFromImage_16 (image.nativeObj));
  107. return retVal;
  108. #else
  109. return null;
  110. #endif
  111. }
  112. //
  113. // C++: Mat cv::dnn::blobFromImages(vector_Mat images, double scalefactor = 1.0, Size size = Size(), Scalar mean = Scalar(), bool swapRB = false, bool crop = false, int ddepth = CV_32F)
  114. //
  115. //javadoc: blobFromImages(images, scalefactor, size, mean, swapRB, crop, ddepth)
  116. public static Mat blobFromImages (List<Mat> images, double scalefactor, Size size, Scalar mean, bool swapRB, bool crop, int ddepth)
  117. {
  118. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  119. Mat images_mat = Converters.vector_Mat_to_Mat (images);
  120. Mat retVal = new Mat (dnn_Dnn_blobFromImages_10 (images_mat.nativeObj, scalefactor, size.width, size.height, mean.val [0], mean.val [1], mean.val [2], mean.val [3], swapRB, crop, ddepth));
  121. return retVal;
  122. #else
  123. return null;
  124. #endif
  125. }
  126. //javadoc: blobFromImages(images, scalefactor, size, mean, swapRB, crop)
  127. public static Mat blobFromImages (List<Mat> images, double scalefactor, Size size, Scalar mean, bool swapRB, bool crop)
  128. {
  129. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  130. Mat images_mat = Converters.vector_Mat_to_Mat (images);
  131. Mat retVal = new Mat (dnn_Dnn_blobFromImages_11 (images_mat.nativeObj, scalefactor, size.width, size.height, mean.val [0], mean.val [1], mean.val [2], mean.val [3], swapRB, crop));
  132. return retVal;
  133. #else
  134. return null;
  135. #endif
  136. }
  137. //javadoc: blobFromImages(images, scalefactor, size, mean, swapRB)
  138. public static Mat blobFromImages (List<Mat> images, double scalefactor, Size size, Scalar mean, bool swapRB)
  139. {
  140. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  141. Mat images_mat = Converters.vector_Mat_to_Mat (images);
  142. Mat retVal = new Mat (dnn_Dnn_blobFromImages_12 (images_mat.nativeObj, scalefactor, size.width, size.height, mean.val [0], mean.val [1], mean.val [2], mean.val [3], swapRB));
  143. return retVal;
  144. #else
  145. return null;
  146. #endif
  147. }
  148. //javadoc: blobFromImages(images, scalefactor, size, mean)
  149. public static Mat blobFromImages (List<Mat> images, double scalefactor, Size size, Scalar mean)
  150. {
  151. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  152. Mat images_mat = Converters.vector_Mat_to_Mat (images);
  153. Mat retVal = new Mat (dnn_Dnn_blobFromImages_13 (images_mat.nativeObj, scalefactor, size.width, size.height, mean.val [0], mean.val [1], mean.val [2], mean.val [3]));
  154. return retVal;
  155. #else
  156. return null;
  157. #endif
  158. }
  159. //javadoc: blobFromImages(images, scalefactor, size)
  160. public static Mat blobFromImages (List<Mat> images, double scalefactor, Size size)
  161. {
  162. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  163. Mat images_mat = Converters.vector_Mat_to_Mat (images);
  164. Mat retVal = new Mat (dnn_Dnn_blobFromImages_14 (images_mat.nativeObj, scalefactor, size.width, size.height));
  165. return retVal;
  166. #else
  167. return null;
  168. #endif
  169. }
  170. //javadoc: blobFromImages(images, scalefactor)
  171. public static Mat blobFromImages (List<Mat> images, double scalefactor)
  172. {
  173. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  174. Mat images_mat = Converters.vector_Mat_to_Mat (images);
  175. Mat retVal = new Mat (dnn_Dnn_blobFromImages_15 (images_mat.nativeObj, scalefactor));
  176. return retVal;
  177. #else
  178. return null;
  179. #endif
  180. }
  181. //javadoc: blobFromImages(images)
  182. public static Mat blobFromImages (List<Mat> images)
  183. {
  184. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  185. Mat images_mat = Converters.vector_Mat_to_Mat (images);
  186. Mat retVal = new Mat (dnn_Dnn_blobFromImages_16 (images_mat.nativeObj));
  187. return retVal;
  188. #else
  189. return null;
  190. #endif
  191. }
  192. //
  193. // C++: Mat cv::dnn::readTensorFromONNX(String path)
  194. //
  195. //javadoc: readTensorFromONNX(path)
  196. public static Mat readTensorFromONNX (string path)
  197. {
  198. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  199. Mat retVal = new Mat (dnn_Dnn_readTensorFromONNX_10 (path));
  200. return retVal;
  201. #else
  202. return null;
  203. #endif
  204. }
  205. //
  206. // C++: Mat cv::dnn::readTorchBlob(String filename, bool isBinary = true)
  207. //
  208. //javadoc: readTorchBlob(filename, isBinary)
  209. public static Mat readTorchBlob (string filename, bool isBinary)
  210. {
  211. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  212. Mat retVal = new Mat (dnn_Dnn_readTorchBlob_10 (filename, isBinary));
  213. return retVal;
  214. #else
  215. return null;
  216. #endif
  217. }
  218. //javadoc: readTorchBlob(filename)
  219. public static Mat readTorchBlob (string filename)
  220. {
  221. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  222. Mat retVal = new Mat (dnn_Dnn_readTorchBlob_11 (filename));
  223. return retVal;
  224. #else
  225. return null;
  226. #endif
  227. }
  228. //
  229. // C++: Net cv::dnn::readNet(String framework, vector_uchar bufferModel, vector_uchar bufferConfig = std::vector<uchar>())
  230. //
  231. //javadoc: readNet(framework, bufferModel, bufferConfig)
  232. public static Net readNet (string framework, MatOfByte bufferModel, MatOfByte bufferConfig)
  233. {
  234. if (bufferModel != null)
  235. bufferModel.ThrowIfDisposed ();
  236. if (bufferConfig != null)
  237. bufferConfig.ThrowIfDisposed ();
  238. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  239. Mat bufferModel_mat = bufferModel;
  240. Mat bufferConfig_mat = bufferConfig;
  241. Net retVal = new Net (dnn_Dnn_readNet_10 (framework, bufferModel_mat.nativeObj, bufferConfig_mat.nativeObj));
  242. return retVal;
  243. #else
  244. return null;
  245. #endif
  246. }
  247. //javadoc: readNet(framework, bufferModel)
  248. public static Net readNet (string framework, MatOfByte bufferModel)
  249. {
  250. if (bufferModel != null)
  251. bufferModel.ThrowIfDisposed ();
  252. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  253. Mat bufferModel_mat = bufferModel;
  254. Net retVal = new Net (dnn_Dnn_readNet_11 (framework, bufferModel_mat.nativeObj));
  255. return retVal;
  256. #else
  257. return null;
  258. #endif
  259. }
  260. //
  261. // C++: Net cv::dnn::readNet(String model, String config = "", String framework = "")
  262. //
  263. //javadoc: readNet(model, config, framework)
  264. public static Net readNet (string model, string config, string framework)
  265. {
  266. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  267. Net retVal = new Net (dnn_Dnn_readNet_12 (model, config, framework));
  268. return retVal;
  269. #else
  270. return null;
  271. #endif
  272. }
  273. //javadoc: readNet(model, config)
  274. public static Net readNet (string model, string config)
  275. {
  276. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  277. Net retVal = new Net (dnn_Dnn_readNet_13 (model, config));
  278. return retVal;
  279. #else
  280. return null;
  281. #endif
  282. }
  283. //javadoc: readNet(model)
  284. public static Net readNet (string model)
  285. {
  286. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  287. Net retVal = new Net (dnn_Dnn_readNet_14 (model));
  288. return retVal;
  289. #else
  290. return null;
  291. #endif
  292. }
  293. //
  294. // C++: Net cv::dnn::readNetFromCaffe(String prototxt, String caffeModel = String())
  295. //
  296. //javadoc: readNetFromCaffe(prototxt, caffeModel)
  297. public static Net readNetFromCaffe (string prototxt, string caffeModel)
  298. {
  299. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  300. Net retVal = new Net (dnn_Dnn_readNetFromCaffe_10 (prototxt, caffeModel));
  301. return retVal;
  302. #else
  303. return null;
  304. #endif
  305. }
  306. //javadoc: readNetFromCaffe(prototxt)
  307. public static Net readNetFromCaffe (string prototxt)
  308. {
  309. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  310. Net retVal = new Net (dnn_Dnn_readNetFromCaffe_11 (prototxt));
  311. return retVal;
  312. #else
  313. return null;
  314. #endif
  315. }
  316. //
  317. // C++: Net cv::dnn::readNetFromCaffe(vector_uchar bufferProto, vector_uchar bufferModel = std::vector<uchar>())
  318. //
  319. //javadoc: readNetFromCaffe(bufferProto, bufferModel)
  320. public static Net readNetFromCaffe (MatOfByte bufferProto, MatOfByte bufferModel)
  321. {
  322. if (bufferProto != null)
  323. bufferProto.ThrowIfDisposed ();
  324. if (bufferModel != null)
  325. bufferModel.ThrowIfDisposed ();
  326. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  327. Mat bufferProto_mat = bufferProto;
  328. Mat bufferModel_mat = bufferModel;
  329. Net retVal = new Net (dnn_Dnn_readNetFromCaffe_12 (bufferProto_mat.nativeObj, bufferModel_mat.nativeObj));
  330. return retVal;
  331. #else
  332. return null;
  333. #endif
  334. }
  335. //javadoc: readNetFromCaffe(bufferProto)
  336. public static Net readNetFromCaffe (MatOfByte bufferProto)
  337. {
  338. if (bufferProto != null)
  339. bufferProto.ThrowIfDisposed ();
  340. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  341. Mat bufferProto_mat = bufferProto;
  342. Net retVal = new Net (dnn_Dnn_readNetFromCaffe_13 (bufferProto_mat.nativeObj));
  343. return retVal;
  344. #else
  345. return null;
  346. #endif
  347. }
  348. //
  349. // C++: Net cv::dnn::readNetFromDarknet(String cfgFile, String darknetModel = String())
  350. //
  351. //javadoc: readNetFromDarknet(cfgFile, darknetModel)
  352. public static Net readNetFromDarknet (string cfgFile, string darknetModel)
  353. {
  354. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  355. Net retVal = new Net (dnn_Dnn_readNetFromDarknet_10 (cfgFile, darknetModel));
  356. return retVal;
  357. #else
  358. return null;
  359. #endif
  360. }
  361. //javadoc: readNetFromDarknet(cfgFile)
  362. public static Net readNetFromDarknet (string cfgFile)
  363. {
  364. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  365. Net retVal = new Net (dnn_Dnn_readNetFromDarknet_11 (cfgFile));
  366. return retVal;
  367. #else
  368. return null;
  369. #endif
  370. }
  371. //
  372. // C++: Net cv::dnn::readNetFromDarknet(vector_uchar bufferCfg, vector_uchar bufferModel = std::vector<uchar>())
  373. //
  374. //javadoc: readNetFromDarknet(bufferCfg, bufferModel)
  375. public static Net readNetFromDarknet (MatOfByte bufferCfg, MatOfByte bufferModel)
  376. {
  377. if (bufferCfg != null)
  378. bufferCfg.ThrowIfDisposed ();
  379. if (bufferModel != null)
  380. bufferModel.ThrowIfDisposed ();
  381. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  382. Mat bufferCfg_mat = bufferCfg;
  383. Mat bufferModel_mat = bufferModel;
  384. Net retVal = new Net (dnn_Dnn_readNetFromDarknet_12 (bufferCfg_mat.nativeObj, bufferModel_mat.nativeObj));
  385. return retVal;
  386. #else
  387. return null;
  388. #endif
  389. }
  390. //javadoc: readNetFromDarknet(bufferCfg)
  391. public static Net readNetFromDarknet (MatOfByte bufferCfg)
  392. {
  393. if (bufferCfg != null)
  394. bufferCfg.ThrowIfDisposed ();
  395. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  396. Mat bufferCfg_mat = bufferCfg;
  397. Net retVal = new Net (dnn_Dnn_readNetFromDarknet_13 (bufferCfg_mat.nativeObj));
  398. return retVal;
  399. #else
  400. return null;
  401. #endif
  402. }
  403. //
  404. // C++: Net cv::dnn::readNetFromModelOptimizer(String xml, String bin)
  405. //
  406. //javadoc: readNetFromModelOptimizer(xml, bin)
  407. public static Net readNetFromModelOptimizer (string xml, string bin)
  408. {
  409. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  410. Net retVal = new Net (dnn_Dnn_readNetFromModelOptimizer_10 (xml, bin));
  411. return retVal;
  412. #else
  413. return null;
  414. #endif
  415. }
  416. //
  417. // C++: Net cv::dnn::readNetFromONNX(String onnxFile)
  418. //
  419. //javadoc: readNetFromONNX(onnxFile)
  420. public static Net readNetFromONNX (string onnxFile)
  421. {
  422. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  423. Net retVal = new Net (dnn_Dnn_readNetFromONNX_10 (onnxFile));
  424. return retVal;
  425. #else
  426. return null;
  427. #endif
  428. }
  429. //
  430. // C++: Net cv::dnn::readNetFromTensorflow(String model, String config = String())
  431. //
  432. //javadoc: readNetFromTensorflow(model, config)
  433. public static Net readNetFromTensorflow (string model, string config)
  434. {
  435. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  436. Net retVal = new Net (dnn_Dnn_readNetFromTensorflow_10 (model, config));
  437. return retVal;
  438. #else
  439. return null;
  440. #endif
  441. }
  442. //javadoc: readNetFromTensorflow(model)
  443. public static Net readNetFromTensorflow (string model)
  444. {
  445. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  446. Net retVal = new Net (dnn_Dnn_readNetFromTensorflow_11 (model));
  447. return retVal;
  448. #else
  449. return null;
  450. #endif
  451. }
  452. //
  453. // C++: Net cv::dnn::readNetFromTensorflow(vector_uchar bufferModel, vector_uchar bufferConfig = std::vector<uchar>())
  454. //
  455. //javadoc: readNetFromTensorflow(bufferModel, bufferConfig)
  456. public static Net readNetFromTensorflow (MatOfByte bufferModel, MatOfByte bufferConfig)
  457. {
  458. if (bufferModel != null)
  459. bufferModel.ThrowIfDisposed ();
  460. if (bufferConfig != null)
  461. bufferConfig.ThrowIfDisposed ();
  462. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  463. Mat bufferModel_mat = bufferModel;
  464. Mat bufferConfig_mat = bufferConfig;
  465. Net retVal = new Net (dnn_Dnn_readNetFromTensorflow_12 (bufferModel_mat.nativeObj, bufferConfig_mat.nativeObj));
  466. return retVal;
  467. #else
  468. return null;
  469. #endif
  470. }
  471. //javadoc: readNetFromTensorflow(bufferModel)
  472. public static Net readNetFromTensorflow (MatOfByte bufferModel)
  473. {
  474. if (bufferModel != null)
  475. bufferModel.ThrowIfDisposed ();
  476. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  477. Mat bufferModel_mat = bufferModel;
  478. Net retVal = new Net (dnn_Dnn_readNetFromTensorflow_13 (bufferModel_mat.nativeObj));
  479. return retVal;
  480. #else
  481. return null;
  482. #endif
  483. }
  484. //
  485. // C++: Net cv::dnn::readNetFromTorch(String model, bool isBinary = true)
  486. //
  487. //javadoc: readNetFromTorch(model, isBinary)
  488. public static Net readNetFromTorch (string model, bool isBinary)
  489. {
  490. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  491. Net retVal = new Net (dnn_Dnn_readNetFromTorch_10 (model, isBinary));
  492. return retVal;
  493. #else
  494. return null;
  495. #endif
  496. }
  497. //javadoc: readNetFromTorch(model)
  498. public static Net readNetFromTorch (string model)
  499. {
  500. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  501. Net retVal = new Net (dnn_Dnn_readNetFromTorch_11 (model));
  502. return retVal;
  503. #else
  504. return null;
  505. #endif
  506. }
  507. //
  508. // C++: void cv::dnn::NMSBoxes(vector_Rect bboxes, vector_float scores, float score_threshold, float nms_threshold, vector_int& indices, float eta = 1.f, int top_k = 0)
  509. //
  510. //javadoc: NMSBoxes(bboxes, scores, score_threshold, nms_threshold, indices, eta, top_k)
  511. public static void NMSBoxes (MatOfRect bboxes, MatOfFloat scores, float score_threshold, float nms_threshold, MatOfInt indices, float eta, int top_k)
  512. {
  513. if (bboxes != null)
  514. bboxes.ThrowIfDisposed ();
  515. if (scores != null)
  516. scores.ThrowIfDisposed ();
  517. if (indices != null)
  518. indices.ThrowIfDisposed ();
  519. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  520. Mat bboxes_mat = bboxes;
  521. Mat scores_mat = scores;
  522. Mat indices_mat = indices;
  523. dnn_Dnn_NMSBoxes_10 (bboxes_mat.nativeObj, scores_mat.nativeObj, score_threshold, nms_threshold, indices_mat.nativeObj, eta, top_k);
  524. return;
  525. #else
  526. return;
  527. #endif
  528. }
  529. //javadoc: NMSBoxes(bboxes, scores, score_threshold, nms_threshold, indices, eta)
  530. public static void NMSBoxes (MatOfRect bboxes, MatOfFloat scores, float score_threshold, float nms_threshold, MatOfInt indices, float eta)
  531. {
  532. if (bboxes != null)
  533. bboxes.ThrowIfDisposed ();
  534. if (scores != null)
  535. scores.ThrowIfDisposed ();
  536. if (indices != null)
  537. indices.ThrowIfDisposed ();
  538. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  539. Mat bboxes_mat = bboxes;
  540. Mat scores_mat = scores;
  541. Mat indices_mat = indices;
  542. dnn_Dnn_NMSBoxes_11 (bboxes_mat.nativeObj, scores_mat.nativeObj, score_threshold, nms_threshold, indices_mat.nativeObj, eta);
  543. return;
  544. #else
  545. return;
  546. #endif
  547. }
  548. //javadoc: NMSBoxes(bboxes, scores, score_threshold, nms_threshold, indices)
  549. public static void NMSBoxes (MatOfRect bboxes, MatOfFloat scores, float score_threshold, float nms_threshold, MatOfInt indices)
  550. {
  551. if (bboxes != null)
  552. bboxes.ThrowIfDisposed ();
  553. if (scores != null)
  554. scores.ThrowIfDisposed ();
  555. if (indices != null)
  556. indices.ThrowIfDisposed ();
  557. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  558. Mat bboxes_mat = bboxes;
  559. Mat scores_mat = scores;
  560. Mat indices_mat = indices;
  561. dnn_Dnn_NMSBoxes_12 (bboxes_mat.nativeObj, scores_mat.nativeObj, score_threshold, nms_threshold, indices_mat.nativeObj);
  562. return;
  563. #else
  564. return;
  565. #endif
  566. }
  567. //
  568. // C++: void cv::dnn::NMSBoxes(vector_Rect2d bboxes, vector_float scores, float score_threshold, float nms_threshold, vector_int& indices, float eta = 1.f, int top_k = 0)
  569. //
  570. //javadoc: NMSBoxes(bboxes, scores, score_threshold, nms_threshold, indices, eta, top_k)
  571. public static void NMSBoxes (MatOfRect2d bboxes, MatOfFloat scores, float score_threshold, float nms_threshold, MatOfInt indices, float eta, int top_k)
  572. {
  573. if (bboxes != null)
  574. bboxes.ThrowIfDisposed ();
  575. if (scores != null)
  576. scores.ThrowIfDisposed ();
  577. if (indices != null)
  578. indices.ThrowIfDisposed ();
  579. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  580. Mat bboxes_mat = bboxes;
  581. Mat scores_mat = scores;
  582. Mat indices_mat = indices;
  583. dnn_Dnn_NMSBoxes_13 (bboxes_mat.nativeObj, scores_mat.nativeObj, score_threshold, nms_threshold, indices_mat.nativeObj, eta, top_k);
  584. return;
  585. #else
  586. return;
  587. #endif
  588. }
  589. //javadoc: NMSBoxes(bboxes, scores, score_threshold, nms_threshold, indices, eta)
  590. public static void NMSBoxes (MatOfRect2d bboxes, MatOfFloat scores, float score_threshold, float nms_threshold, MatOfInt indices, float eta)
  591. {
  592. if (bboxes != null)
  593. bboxes.ThrowIfDisposed ();
  594. if (scores != null)
  595. scores.ThrowIfDisposed ();
  596. if (indices != null)
  597. indices.ThrowIfDisposed ();
  598. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  599. Mat bboxes_mat = bboxes;
  600. Mat scores_mat = scores;
  601. Mat indices_mat = indices;
  602. dnn_Dnn_NMSBoxes_14 (bboxes_mat.nativeObj, scores_mat.nativeObj, score_threshold, nms_threshold, indices_mat.nativeObj, eta);
  603. return;
  604. #else
  605. return;
  606. #endif
  607. }
  608. //javadoc: NMSBoxes(bboxes, scores, score_threshold, nms_threshold, indices)
  609. public static void NMSBoxes (MatOfRect2d bboxes, MatOfFloat scores, float score_threshold, float nms_threshold, MatOfInt indices)
  610. {
  611. if (bboxes != null)
  612. bboxes.ThrowIfDisposed ();
  613. if (scores != null)
  614. scores.ThrowIfDisposed ();
  615. if (indices != null)
  616. indices.ThrowIfDisposed ();
  617. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  618. Mat bboxes_mat = bboxes;
  619. Mat scores_mat = scores;
  620. Mat indices_mat = indices;
  621. dnn_Dnn_NMSBoxes_15 (bboxes_mat.nativeObj, scores_mat.nativeObj, score_threshold, nms_threshold, indices_mat.nativeObj);
  622. return;
  623. #else
  624. return;
  625. #endif
  626. }
  627. //
  628. // C++: void cv::dnn::NMSBoxes(vector_RotatedRect bboxes, vector_float scores, float score_threshold, float nms_threshold, vector_int& indices, float eta = 1.f, int top_k = 0)
  629. //
  630. //javadoc: NMSBoxesRotated(bboxes, scores, score_threshold, nms_threshold, indices, eta, top_k)
  631. public static void NMSBoxesRotated (MatOfRotatedRect bboxes, MatOfFloat scores, float score_threshold, float nms_threshold, MatOfInt indices, float eta, int top_k)
  632. {
  633. if (bboxes != null)
  634. bboxes.ThrowIfDisposed ();
  635. if (scores != null)
  636. scores.ThrowIfDisposed ();
  637. if (indices != null)
  638. indices.ThrowIfDisposed ();
  639. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  640. Mat bboxes_mat = bboxes;
  641. Mat scores_mat = scores;
  642. Mat indices_mat = indices;
  643. dnn_Dnn_NMSBoxesRotated_10 (bboxes_mat.nativeObj, scores_mat.nativeObj, score_threshold, nms_threshold, indices_mat.nativeObj, eta, top_k);
  644. return;
  645. #else
  646. return;
  647. #endif
  648. }
  649. //javadoc: NMSBoxesRotated(bboxes, scores, score_threshold, nms_threshold, indices, eta)
  650. public static void NMSBoxesRotated (MatOfRotatedRect bboxes, MatOfFloat scores, float score_threshold, float nms_threshold, MatOfInt indices, float eta)
  651. {
  652. if (bboxes != null)
  653. bboxes.ThrowIfDisposed ();
  654. if (scores != null)
  655. scores.ThrowIfDisposed ();
  656. if (indices != null)
  657. indices.ThrowIfDisposed ();
  658. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  659. Mat bboxes_mat = bboxes;
  660. Mat scores_mat = scores;
  661. Mat indices_mat = indices;
  662. dnn_Dnn_NMSBoxesRotated_11 (bboxes_mat.nativeObj, scores_mat.nativeObj, score_threshold, nms_threshold, indices_mat.nativeObj, eta);
  663. return;
  664. #else
  665. return;
  666. #endif
  667. }
  668. //javadoc: NMSBoxesRotated(bboxes, scores, score_threshold, nms_threshold, indices)
  669. public static void NMSBoxesRotated (MatOfRotatedRect bboxes, MatOfFloat scores, float score_threshold, float nms_threshold, MatOfInt indices)
  670. {
  671. if (bboxes != null)
  672. bboxes.ThrowIfDisposed ();
  673. if (scores != null)
  674. scores.ThrowIfDisposed ();
  675. if (indices != null)
  676. indices.ThrowIfDisposed ();
  677. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  678. Mat bboxes_mat = bboxes;
  679. Mat scores_mat = scores;
  680. Mat indices_mat = indices;
  681. dnn_Dnn_NMSBoxesRotated_12 (bboxes_mat.nativeObj, scores_mat.nativeObj, score_threshold, nms_threshold, indices_mat.nativeObj);
  682. return;
  683. #else
  684. return;
  685. #endif
  686. }
  687. //
  688. // C++: void cv::dnn::imagesFromBlob(Mat blob_, vector_Mat& images_)
  689. //
  690. //javadoc: imagesFromBlob(blob_, images_)
  691. public static void imagesFromBlob (Mat blob_, List<Mat> images_)
  692. {
  693. if (blob_ != null)
  694. blob_.ThrowIfDisposed ();
  695. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  696. Mat images__mat = new Mat ();
  697. dnn_Dnn_imagesFromBlob_10 (blob_.nativeObj, images__mat.nativeObj);
  698. Converters.Mat_to_vector_Mat (images__mat, images_);
  699. images__mat.release ();
  700. return;
  701. #else
  702. return;
  703. #endif
  704. }
  705. //
  706. // C++: void cv::dnn::resetMyriadDevice()
  707. //
  708. //javadoc: resetMyriadDevice()
  709. public static void resetMyriadDevice ()
  710. {
  711. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  712. dnn_Dnn_resetMyriadDevice_10 ();
  713. return;
  714. #else
  715. return;
  716. #endif
  717. }
  718. //
  719. // C++: void cv::dnn::shrinkCaffeModel(String src, String dst, vector_String layersTypes = std::vector<String>())
  720. //
  721. //javadoc: shrinkCaffeModel(src, dst, layersTypes)
  722. public static void shrinkCaffeModel (string src, string dst, List<string> layersTypes)
  723. {
  724. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  725. Mat layersTypes_mat = Converters.vector_String_to_Mat (layersTypes);
  726. dnn_Dnn_shrinkCaffeModel_10 (src, dst, layersTypes_mat.nativeObj);
  727. return;
  728. #else
  729. return;
  730. #endif
  731. }
  732. //javadoc: shrinkCaffeModel(src, dst)
  733. public static void shrinkCaffeModel (string src, string dst)
  734. {
  735. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  736. dnn_Dnn_shrinkCaffeModel_11 (src, dst);
  737. return;
  738. #else
  739. return;
  740. #endif
  741. }
  742. //
  743. // C++: void cv::dnn::writeTextGraph(String model, String output)
  744. //
  745. //javadoc: writeTextGraph(model, output)
  746. public static void writeTextGraph (string model, string output)
  747. {
  748. #if ((UNITY_ANDROID || UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR) || UNITY_5 || UNITY_5_3_OR_NEWER
  749. dnn_Dnn_writeTextGraph_10 (model, output);
  750. return;
  751. #else
  752. return;
  753. #endif
  754. }
  755. #if (UNITY_IOS || UNITY_WEBGL) && !UNITY_EDITOR
  756. const string LIBNAME = "__Internal";
  757. #else
  758. const string LIBNAME = "opencvforunity";
  759. #endif
  760. // C++: Mat cv::dnn::blobFromImage(Mat image, double scalefactor = 1.0, Size size = Size(), Scalar mean = Scalar(), bool swapRB = false, bool crop = false, int ddepth = CV_32F)
  761. [DllImport (LIBNAME)]
  762. private static extern IntPtr dnn_Dnn_blobFromImage_10 (IntPtr image_nativeObj, double scalefactor, double size_width, double size_height, double mean_val0, double mean_val1, double mean_val2, double mean_val3, bool swapRB, bool crop, int ddepth);
  763. [DllImport (LIBNAME)]
  764. private static extern IntPtr dnn_Dnn_blobFromImage_11 (IntPtr image_nativeObj, double scalefactor, double size_width, double size_height, double mean_val0, double mean_val1, double mean_val2, double mean_val3, bool swapRB, bool crop);
  765. [DllImport (LIBNAME)]
  766. private static extern IntPtr dnn_Dnn_blobFromImage_12 (IntPtr image_nativeObj, double scalefactor, double size_width, double size_height, double mean_val0, double mean_val1, double mean_val2, double mean_val3, bool swapRB);
  767. [DllImport (LIBNAME)]
  768. private static extern IntPtr dnn_Dnn_blobFromImage_13 (IntPtr image_nativeObj, double scalefactor, double size_width, double size_height, double mean_val0, double mean_val1, double mean_val2, double mean_val3);
  769. [DllImport (LIBNAME)]
  770. private static extern IntPtr dnn_Dnn_blobFromImage_14 (IntPtr image_nativeObj, double scalefactor, double size_width, double size_height);
  771. [DllImport (LIBNAME)]
  772. private static extern IntPtr dnn_Dnn_blobFromImage_15 (IntPtr image_nativeObj, double scalefactor);
  773. [DllImport (LIBNAME)]
  774. private static extern IntPtr dnn_Dnn_blobFromImage_16 (IntPtr image_nativeObj);
  775. // C++: Mat cv::dnn::blobFromImages(vector_Mat images, double scalefactor = 1.0, Size size = Size(), Scalar mean = Scalar(), bool swapRB = false, bool crop = false, int ddepth = CV_32F)
  776. [DllImport (LIBNAME)]
  777. private static extern IntPtr dnn_Dnn_blobFromImages_10 (IntPtr images_mat_nativeObj, double scalefactor, double size_width, double size_height, double mean_val0, double mean_val1, double mean_val2, double mean_val3, bool swapRB, bool crop, int ddepth);
  778. [DllImport (LIBNAME)]
  779. private static extern IntPtr dnn_Dnn_blobFromImages_11 (IntPtr images_mat_nativeObj, double scalefactor, double size_width, double size_height, double mean_val0, double mean_val1, double mean_val2, double mean_val3, bool swapRB, bool crop);
  780. [DllImport (LIBNAME)]
  781. private static extern IntPtr dnn_Dnn_blobFromImages_12 (IntPtr images_mat_nativeObj, double scalefactor, double size_width, double size_height, double mean_val0, double mean_val1, double mean_val2, double mean_val3, bool swapRB);
  782. [DllImport (LIBNAME)]
  783. private static extern IntPtr dnn_Dnn_blobFromImages_13 (IntPtr images_mat_nativeObj, double scalefactor, double size_width, double size_height, double mean_val0, double mean_val1, double mean_val2, double mean_val3);
  784. [DllImport (LIBNAME)]
  785. private static extern IntPtr dnn_Dnn_blobFromImages_14 (IntPtr images_mat_nativeObj, double scalefactor, double size_width, double size_height);
  786. [DllImport (LIBNAME)]
  787. private static extern IntPtr dnn_Dnn_blobFromImages_15 (IntPtr images_mat_nativeObj, double scalefactor);
  788. [DllImport (LIBNAME)]
  789. private static extern IntPtr dnn_Dnn_blobFromImages_16 (IntPtr images_mat_nativeObj);
  790. // C++: Mat cv::dnn::readTensorFromONNX(String path)
  791. [DllImport (LIBNAME)]
  792. private static extern IntPtr dnn_Dnn_readTensorFromONNX_10 (string path);
  793. // C++: Mat cv::dnn::readTorchBlob(String filename, bool isBinary = true)
  794. [DllImport (LIBNAME)]
  795. private static extern IntPtr dnn_Dnn_readTorchBlob_10 (string filename, bool isBinary);
  796. [DllImport (LIBNAME)]
  797. private static extern IntPtr dnn_Dnn_readTorchBlob_11 (string filename);
  798. // C++: Net cv::dnn::readNet(String framework, vector_uchar bufferModel, vector_uchar bufferConfig = std::vector<uchar>())
  799. [DllImport (LIBNAME)]
  800. private static extern IntPtr dnn_Dnn_readNet_10 (string framework, IntPtr bufferModel_mat_nativeObj, IntPtr bufferConfig_mat_nativeObj);
  801. [DllImport (LIBNAME)]
  802. private static extern IntPtr dnn_Dnn_readNet_11 (string framework, IntPtr bufferModel_mat_nativeObj);
  803. // C++: Net cv::dnn::readNet(String model, String config = "", String framework = "")
  804. [DllImport (LIBNAME)]
  805. private static extern IntPtr dnn_Dnn_readNet_12 (string model, string config, string framework);
  806. [DllImport (LIBNAME)]
  807. private static extern IntPtr dnn_Dnn_readNet_13 (string model, string config);
  808. [DllImport (LIBNAME)]
  809. private static extern IntPtr dnn_Dnn_readNet_14 (string model);
  810. // C++: Net cv::dnn::readNetFromCaffe(String prototxt, String caffeModel = String())
  811. [DllImport (LIBNAME)]
  812. private static extern IntPtr dnn_Dnn_readNetFromCaffe_10 (string prototxt, string caffeModel);
  813. [DllImport (LIBNAME)]
  814. private static extern IntPtr dnn_Dnn_readNetFromCaffe_11 (string prototxt);
  815. // C++: Net cv::dnn::readNetFromCaffe(vector_uchar bufferProto, vector_uchar bufferModel = std::vector<uchar>())
  816. [DllImport (LIBNAME)]
  817. private static extern IntPtr dnn_Dnn_readNetFromCaffe_12 (IntPtr bufferProto_mat_nativeObj, IntPtr bufferModel_mat_nativeObj);
  818. [DllImport (LIBNAME)]
  819. private static extern IntPtr dnn_Dnn_readNetFromCaffe_13 (IntPtr bufferProto_mat_nativeObj);
  820. // C++: Net cv::dnn::readNetFromDarknet(String cfgFile, String darknetModel = String())
  821. [DllImport (LIBNAME)]
  822. private static extern IntPtr dnn_Dnn_readNetFromDarknet_10 (string cfgFile, string darknetModel);
  823. [DllImport (LIBNAME)]
  824. private static extern IntPtr dnn_Dnn_readNetFromDarknet_11 (string cfgFile);
  825. // C++: Net cv::dnn::readNetFromDarknet(vector_uchar bufferCfg, vector_uchar bufferModel = std::vector<uchar>())
  826. [DllImport (LIBNAME)]
  827. private static extern IntPtr dnn_Dnn_readNetFromDarknet_12 (IntPtr bufferCfg_mat_nativeObj, IntPtr bufferModel_mat_nativeObj);
  828. [DllImport (LIBNAME)]
  829. private static extern IntPtr dnn_Dnn_readNetFromDarknet_13 (IntPtr bufferCfg_mat_nativeObj);
  830. // C++: Net cv::dnn::readNetFromModelOptimizer(String xml, String bin)
  831. [DllImport (LIBNAME)]
  832. private static extern IntPtr dnn_Dnn_readNetFromModelOptimizer_10 (string xml, string bin);
  833. // C++: Net cv::dnn::readNetFromONNX(String onnxFile)
  834. [DllImport (LIBNAME)]
  835. private static extern IntPtr dnn_Dnn_readNetFromONNX_10 (string onnxFile);
  836. // C++: Net cv::dnn::readNetFromTensorflow(String model, String config = String())
  837. [DllImport (LIBNAME)]
  838. private static extern IntPtr dnn_Dnn_readNetFromTensorflow_10 (string model, string config);
  839. [DllImport (LIBNAME)]
  840. private static extern IntPtr dnn_Dnn_readNetFromTensorflow_11 (string model);
  841. // C++: Net cv::dnn::readNetFromTensorflow(vector_uchar bufferModel, vector_uchar bufferConfig = std::vector<uchar>())
  842. [DllImport (LIBNAME)]
  843. private static extern IntPtr dnn_Dnn_readNetFromTensorflow_12 (IntPtr bufferModel_mat_nativeObj, IntPtr bufferConfig_mat_nativeObj);
  844. [DllImport (LIBNAME)]
  845. private static extern IntPtr dnn_Dnn_readNetFromTensorflow_13 (IntPtr bufferModel_mat_nativeObj);
  846. // C++: Net cv::dnn::readNetFromTorch(String model, bool isBinary = true)
  847. [DllImport (LIBNAME)]
  848. private static extern IntPtr dnn_Dnn_readNetFromTorch_10 (string model, bool isBinary);
  849. [DllImport (LIBNAME)]
  850. private static extern IntPtr dnn_Dnn_readNetFromTorch_11 (string model);
  851. // C++: void cv::dnn::NMSBoxes(vector_Rect bboxes, vector_float scores, float score_threshold, float nms_threshold, vector_int& indices, float eta = 1.f, int top_k = 0)
  852. [DllImport (LIBNAME)]
  853. private static extern void dnn_Dnn_NMSBoxes_10 (IntPtr bboxes_mat_nativeObj, IntPtr scores_mat_nativeObj, float score_threshold, float nms_threshold, IntPtr indices_mat_nativeObj, float eta, int top_k);
  854. [DllImport (LIBNAME)]
  855. private static extern void dnn_Dnn_NMSBoxes_11 (IntPtr bboxes_mat_nativeObj, IntPtr scores_mat_nativeObj, float score_threshold, float nms_threshold, IntPtr indices_mat_nativeObj, float eta);
  856. [DllImport (LIBNAME)]
  857. private static extern void dnn_Dnn_NMSBoxes_12 (IntPtr bboxes_mat_nativeObj, IntPtr scores_mat_nativeObj, float score_threshold, float nms_threshold, IntPtr indices_mat_nativeObj);
  858. // C++: void cv::dnn::NMSBoxes(vector_Rect2d bboxes, vector_float scores, float score_threshold, float nms_threshold, vector_int& indices, float eta = 1.f, int top_k = 0)
  859. [DllImport (LIBNAME)]
  860. private static extern void dnn_Dnn_NMSBoxes_13 (IntPtr bboxes_mat_nativeObj, IntPtr scores_mat_nativeObj, float score_threshold, float nms_threshold, IntPtr indices_mat_nativeObj, float eta, int top_k);
  861. [DllImport (LIBNAME)]
  862. private static extern void dnn_Dnn_NMSBoxes_14 (IntPtr bboxes_mat_nativeObj, IntPtr scores_mat_nativeObj, float score_threshold, float nms_threshold, IntPtr indices_mat_nativeObj, float eta);
  863. [DllImport (LIBNAME)]
  864. private static extern void dnn_Dnn_NMSBoxes_15 (IntPtr bboxes_mat_nativeObj, IntPtr scores_mat_nativeObj, float score_threshold, float nms_threshold, IntPtr indices_mat_nativeObj);
  865. // C++: void cv::dnn::NMSBoxes(vector_RotatedRect bboxes, vector_float scores, float score_threshold, float nms_threshold, vector_int& indices, float eta = 1.f, int top_k = 0)
  866. [DllImport (LIBNAME)]
  867. private static extern void dnn_Dnn_NMSBoxesRotated_10 (IntPtr bboxes_mat_nativeObj, IntPtr scores_mat_nativeObj, float score_threshold, float nms_threshold, IntPtr indices_mat_nativeObj, float eta, int top_k);
  868. [DllImport (LIBNAME)]
  869. private static extern void dnn_Dnn_NMSBoxesRotated_11 (IntPtr bboxes_mat_nativeObj, IntPtr scores_mat_nativeObj, float score_threshold, float nms_threshold, IntPtr indices_mat_nativeObj, float eta);
  870. [DllImport (LIBNAME)]
  871. private static extern void dnn_Dnn_NMSBoxesRotated_12 (IntPtr bboxes_mat_nativeObj, IntPtr scores_mat_nativeObj, float score_threshold, float nms_threshold, IntPtr indices_mat_nativeObj);
  872. // C++: void cv::dnn::imagesFromBlob(Mat blob_, vector_Mat& images_)
  873. [DllImport (LIBNAME)]
  874. private static extern void dnn_Dnn_imagesFromBlob_10 (IntPtr blob__nativeObj, IntPtr images__mat_nativeObj);
  875. // C++: void cv::dnn::resetMyriadDevice()
  876. [DllImport (LIBNAME)]
  877. private static extern void dnn_Dnn_resetMyriadDevice_10 ();
  878. // C++: void cv::dnn::shrinkCaffeModel(String src, String dst, vector_String layersTypes = std::vector<String>())
  879. [DllImport (LIBNAME)]
  880. private static extern void dnn_Dnn_shrinkCaffeModel_10 (string src, string dst, IntPtr layersTypes_mat_nativeObj);
  881. [DllImport (LIBNAME)]
  882. private static extern void dnn_Dnn_shrinkCaffeModel_11 (string src, string dst);
  883. // C++: void cv::dnn::writeTextGraph(String model, String output)
  884. [DllImport (LIBNAME)]
  885. private static extern void dnn_Dnn_writeTextGraph_10 (string model, string output);
  886. }
  887. }
  888. #endif