opencv_js.config.py 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239
  1. # Classes and methods whitelist
  2. core = {
  3. '': [
  4. 'absdiff', 'add', 'addWeighted', 'bitwise_and', 'bitwise_not', 'bitwise_or', 'bitwise_xor', 'cartToPolar',
  5. 'compare', 'convertScaleAbs', 'copyMakeBorder', 'countNonZero', 'determinant', 'dft', 'divide', 'eigen',
  6. 'exp', 'flip', 'getOptimalDFTSize','gemm', 'hconcat', 'inRange', 'invert', 'kmeans', 'log', 'magnitude',
  7. 'max', 'mean', 'meanStdDev', 'merge', 'min', 'minMaxLoc', 'mixChannels', 'multiply', 'norm', 'normalize',
  8. 'perspectiveTransform', 'polarToCart', 'pow', 'randn', 'randu', 'reduce', 'repeat', 'rotate', 'setIdentity', 'setRNGSeed',
  9. 'solve', 'solvePoly', 'split', 'sqrt', 'subtract', 'trace', 'transform', 'transpose', 'vconcat',
  10. 'setLogLevel', 'getLogLevel',
  11. 'LUT',
  12. ],
  13. 'Algorithm': [],
  14. }
  15. imgproc = {
  16. '': [
  17. 'adaptiveThreshold',
  18. 'applyColorMap',
  19. 'approxPolyDP',
  20. 'approxPolyN',
  21. 'arcLength',
  22. 'arrowedLine',
  23. 'bilateralFilter',
  24. 'blendLinear',
  25. 'blur',
  26. 'boundingRect',
  27. 'boxFilter',
  28. 'calcBackProject',
  29. 'calcHist',
  30. 'Canny',
  31. 'circle',
  32. 'clipLine',
  33. 'compareHist',
  34. 'connectedComponents',
  35. 'connectedComponentsWithStats',
  36. 'contourArea',
  37. 'convertMaps',
  38. 'convexHull',
  39. 'convexityDefects',
  40. 'cornerHarris',
  41. 'cornerMinEigenVal',
  42. 'createCLAHE',
  43. 'createHanningWindow',
  44. 'createLineSegmentDetector',
  45. 'cvtColor',
  46. 'demosaicing',
  47. 'dilate',
  48. 'distanceTransform',
  49. 'distanceTransformWithLabels',
  50. 'divSpectrums',
  51. 'drawContours',
  52. 'drawMarker',
  53. 'ellipse',
  54. 'ellipse2Poly',
  55. 'equalizeHist',
  56. 'erode',
  57. 'fillConvexPoly',
  58. 'fillPoly',
  59. 'filter2D',
  60. 'findContours',
  61. 'findContoursLinkRuns',
  62. 'fitEllipse',
  63. 'fitEllipseAMS',
  64. 'fitEllipseDirect',
  65. 'fitLine',
  66. 'floodFill',
  67. 'GaussianBlur',
  68. 'getAffineTransform',
  69. 'getFontScaleFromHeight',
  70. 'getPerspectiveTransform',
  71. 'getRectSubPix',
  72. 'getRotationMatrix2D',
  73. 'getStructuringElement',
  74. 'goodFeaturesToTrack',
  75. 'grabCut',
  76. 'HoughLines',
  77. 'HoughLinesP',
  78. 'HoughCircles',
  79. 'HuMoments',
  80. 'integral',
  81. 'integral2',
  82. 'intersectConvexConvex',
  83. 'invertAffineTransform',
  84. 'isContourConvex',
  85. 'Laplacian',
  86. 'line',
  87. 'matchShapes',
  88. 'matchTemplate',
  89. 'medianBlur',
  90. 'minAreaRect',
  91. 'minEnclosingCircle',
  92. 'minEnclosingTriangle',
  93. 'moments',
  94. 'morphologyEx',
  95. 'pointPolygonTest',
  96. 'polylines',
  97. 'preCornerDetect',
  98. 'putText',
  99. 'pyrDown',
  100. 'pyrUp',
  101. 'rectangle',
  102. 'remap',
  103. 'resize',
  104. 'rotatedRectangleIntersection',
  105. 'Scharr',
  106. 'sepFilter2D',
  107. 'Sobel',
  108. 'spatialGradient',
  109. 'sqrBoxFilter',
  110. 'stackBlur',
  111. 'threshold',
  112. 'warpAffine',
  113. 'warpPerspective',
  114. 'warpPolar',
  115. 'watershed',
  116. ],
  117. 'CLAHE': ['apply', 'collectGarbage', 'getClipLimit', 'getTilesGridSize', 'setClipLimit', 'setTilesGridSize'],
  118. 'segmentation_IntelligentScissorsMB': [
  119. 'IntelligentScissorsMB',
  120. 'setWeights',
  121. 'setGradientMagnitudeMaxLimit',
  122. 'setEdgeFeatureZeroCrossingParameters',
  123. 'setEdgeFeatureCannyParameters',
  124. 'applyImage',
  125. 'applyImageFeatures',
  126. 'buildMap',
  127. 'getContour'
  128. ],
  129. }
  130. objdetect = {'': ['groupRectangles', 'getPredefinedDictionary', 'extendDictionary',
  131. 'drawDetectedMarkers', 'generateImageMarker', 'drawDetectedCornersCharuco',
  132. 'drawDetectedDiamonds'],
  133. 'HOGDescriptor': ['load', 'HOGDescriptor', 'getDefaultPeopleDetector', 'getDaimlerPeopleDetector', 'setSVMDetector', 'detectMultiScale'],
  134. 'CascadeClassifier': ['load', 'detectMultiScale2', 'CascadeClassifier', 'detectMultiScale3', 'empty', 'detectMultiScale'],
  135. 'GraphicalCodeDetector': ['decode', 'detect', 'detectAndDecode', 'detectMulti', 'decodeMulti', 'detectAndDecodeMulti'],
  136. 'QRCodeDetector': ['QRCodeDetector', 'decode', 'detect', 'detectAndDecode', 'detectMulti', 'decodeMulti', 'detectAndDecodeMulti', 'decodeCurved', 'detectAndDecodeCurved', 'setEpsX', 'setEpsY'],
  137. 'aruco_PredefinedDictionaryType': [],
  138. 'aruco_Dictionary': ['Dictionary', 'getDistanceToId', 'generateImageMarker', 'getByteListFromBits', 'getBitsFromByteList'],
  139. 'aruco_Board': ['Board', 'matchImagePoints', 'generateImage'],
  140. 'aruco_GridBoard': ['GridBoard', 'generateImage', 'getGridSize', 'getMarkerLength', 'getMarkerSeparation', 'matchImagePoints'],
  141. 'aruco_CharucoParameters': ['CharucoParameters'],
  142. 'aruco_CharucoBoard': ['CharucoBoard', 'generateImage', 'getChessboardCorners', 'getNearestMarkerCorners', 'checkCharucoCornersCollinear', 'matchImagePoints', 'getLegacyPattern', 'setLegacyPattern'],
  143. 'aruco_DetectorParameters': ['DetectorParameters'],
  144. 'aruco_RefineParameters': ['RefineParameters'],
  145. 'aruco_ArucoDetector': ['ArucoDetector', 'detectMarkers', 'refineDetectedMarkers', 'setDictionary', 'setDetectorParameters', 'setRefineParameters'],
  146. 'aruco_CharucoDetector': ['CharucoDetector', 'setBoard', 'setCharucoParameters', 'setDetectorParameters', 'setRefineParameters', 'detectBoard', 'detectDiamonds'],
  147. 'QRCodeDetectorAruco_Params': ['Params'],
  148. 'QRCodeDetectorAruco': ['QRCodeDetectorAruco', 'decode', 'detect', 'detectAndDecode', 'detectMulti', 'decodeMulti', 'detectAndDecodeMulti', 'setDetectorParameters', 'setArucoParameters'],
  149. 'barcode_BarcodeDetector': ['BarcodeDetector', 'decode', 'detect', 'detectAndDecode', 'detectMulti', 'decodeMulti', 'detectAndDecodeMulti', 'decodeWithType', 'detectAndDecodeWithType'],
  150. 'FaceDetectorYN': ['setInputSize', 'getInputSize', 'setScoreThreshold', 'getScoreThreshold', 'setNMSThreshold', 'getNMSThreshold',
  151. 'setTopK', 'getTopK', 'detect', 'create'],
  152. }
  153. video = {
  154. '': [
  155. 'CamShift',
  156. 'calcOpticalFlowFarneback',
  157. 'calcOpticalFlowPyrLK',
  158. 'createBackgroundSubtractorMOG2',
  159. 'findTransformECC',
  160. 'meanShift',
  161. ],
  162. 'BackgroundSubtractorMOG2': ['BackgroundSubtractorMOG2', 'apply'],
  163. 'BackgroundSubtractor': ['apply', 'getBackgroundImage'],
  164. # issue #21070: 'Tracker': ['init', 'update'],
  165. 'TrackerMIL': ['create'],
  166. 'TrackerMIL_Params': [],
  167. }
  168. dnn = {'dnn_Net': ['setInput', 'forward', 'setPreferableBackend','getUnconnectedOutLayersNames'],
  169. '': ['readNetFromCaffe', 'readNetFromTensorflow', 'readNetFromTorch', 'readNetFromDarknet',
  170. 'readNetFromONNX', 'readNetFromTFLite', 'readNet', 'blobFromImage']}
  171. features2d = {'Feature2D': ['detect', 'compute', 'detectAndCompute', 'descriptorSize', 'descriptorType', 'defaultNorm', 'empty', 'getDefaultName'],
  172. 'BRISK': ['create', 'getDefaultName'],
  173. 'ORB': ['create', 'setMaxFeatures', 'setScaleFactor', 'setNLevels', 'setEdgeThreshold', 'setFastThreshold', 'setFirstLevel', 'setWTA_K', 'setScoreType', 'setPatchSize', 'getFastThreshold', 'getDefaultName'],
  174. 'MSER': ['create', 'detectRegions', 'setDelta', 'getDelta', 'setMinArea', 'getMinArea', 'setMaxArea', 'getMaxArea', 'setPass2Only', 'getPass2Only', 'getDefaultName'],
  175. 'FastFeatureDetector': ['create', 'setThreshold', 'getThreshold', 'setNonmaxSuppression', 'getNonmaxSuppression', 'setType', 'getType', 'getDefaultName'],
  176. 'AgastFeatureDetector': ['create', 'setThreshold', 'getThreshold', 'setNonmaxSuppression', 'getNonmaxSuppression', 'setType', 'getType', 'getDefaultName'],
  177. 'GFTTDetector': ['create', 'setMaxFeatures', 'getMaxFeatures', 'setQualityLevel', 'getQualityLevel', 'setMinDistance', 'getMinDistance', 'setBlockSize', 'getBlockSize', 'setHarrisDetector', 'getHarrisDetector', 'setK', 'getK', 'getDefaultName'],
  178. 'SimpleBlobDetector': ['create', 'setParams', 'getParams', 'getDefaultName'],
  179. 'SimpleBlobDetector_Params': [],
  180. 'KAZE': ['create', 'setExtended', 'getExtended', 'setUpright', 'getUpright', 'setThreshold', 'getThreshold', 'setNOctaves', 'getNOctaves', 'setNOctaveLayers', 'getNOctaveLayers', 'setDiffusivity', 'getDiffusivity', 'getDefaultName'],
  181. 'AKAZE': ['create', 'setDescriptorType', 'getDescriptorType', 'setDescriptorSize', 'getDescriptorSize', 'setDescriptorChannels', 'getDescriptorChannels', 'setThreshold', 'getThreshold', 'setNOctaves', 'getNOctaves', 'setNOctaveLayers', 'getNOctaveLayers', 'setDiffusivity', 'getDiffusivity', 'getDefaultName'],
  182. 'DescriptorMatcher': ['add', 'clear', 'empty', 'isMaskSupported', 'train', 'match', 'knnMatch', 'radiusMatch', 'clone', 'create'],
  183. 'BFMatcher': ['isMaskSupported', 'create'],
  184. '': ['drawKeypoints', 'drawMatches', 'drawMatchesKnn']}
  185. photo = {'': ['createAlignMTB', 'createCalibrateDebevec', 'createCalibrateRobertson', \
  186. 'createMergeDebevec', 'createMergeMertens', 'createMergeRobertson', \
  187. 'createTonemapDrago', 'createTonemapMantiuk', 'createTonemapReinhard', 'inpaint'],
  188. 'CalibrateCRF': ['process'],
  189. 'AlignExposures': ['process'],
  190. 'AlignMTB' : ['calculateShift', 'shiftMat', 'computeBitmaps', 'getMaxBits', 'setMaxBits', \
  191. 'getExcludeRange', 'setExcludeRange', 'getCut', 'setCut'],
  192. 'CalibrateDebevec' : ['getLambda', 'setLambda', 'getSamples', 'setSamples', 'getRandom', 'setRandom'],
  193. 'CalibrateRobertson' : ['getMaxIter', 'setMaxIter', 'getThreshold', 'setThreshold', 'getRadiance'],
  194. 'MergeExposures' : ['process'],
  195. 'MergeDebevec' : ['process'],
  196. 'MergeMertens' : ['process', 'getContrastWeight', 'setContrastWeight', 'getSaturationWeight', \
  197. 'setSaturationWeight', 'getExposureWeight', 'setExposureWeight'],
  198. 'MergeRobertson' : ['process'],
  199. 'Tonemap' : ['process' , 'getGamma', 'setGamma'],
  200. 'TonemapDrago' : ['getSaturation', 'setSaturation', 'getBias', 'setBias', \
  201. 'getSigmaColor', 'setSigmaColor', 'getSigmaSpace','setSigmaSpace'],
  202. 'TonemapMantiuk' : ['getScale', 'setScale', 'getSaturation', 'setSaturation'],
  203. 'TonemapReinhard' : ['getIntensity', 'setIntensity', 'getLightAdaptation', 'setLightAdaptation', \
  204. 'getColorAdaptation', 'setColorAdaptation']
  205. }
  206. calib3d = {
  207. '': [
  208. 'findHomography',
  209. 'calibrateCameraExtended',
  210. 'drawFrameAxes',
  211. 'estimateAffine2D',
  212. 'getDefaultNewCameraMatrix',
  213. 'initUndistortRectifyMap',
  214. 'Rodrigues',
  215. 'solvePnP',
  216. 'solvePnPRansac',
  217. 'solvePnPRefineLM',
  218. 'projectPoints',
  219. 'undistort',
  220. # cv::fisheye namespace
  221. 'fisheye_initUndistortRectifyMap',
  222. 'fisheye_projectPoints',
  223. ],
  224. 'UsacParams': ['UsacParams']
  225. }
  226. white_list = makeWhiteList([core, imgproc, objdetect, video, dnn, features2d, photo, calib3d])
  227. # namespace_prefix_override['dnn'] = '' # compatibility stuff (enabled by default)
  228. # namespace_prefix_override['aruco'] = '' # compatibility stuff (enabled by default)