718c41634f
1.项目后端整体迁移至PaddleOCR-NCNN算法,已通过基本的兼容性测试 2.工程改为使用CMake组织,后续为了更好地兼容第三方库,不再提供QMake工程 3.重整权利声明文件,重整代码工程,确保最小化侵权风险 Log: 切换后端至PaddleOCR-NCNN,切换工程为CMake Change-Id: I4d5d2c5d37505a4a24b389b1a4c5d12f17bfa38c
193 lines
8.7 KiB
Python
193 lines
8.7 KiB
Python
# Classes and methods whitelist
|
|
|
|
core = {
|
|
'': [
|
|
'absdiff', 'add', 'addWeighted', 'bitwise_and', 'bitwise_not', 'bitwise_or', 'bitwise_xor', 'cartToPolar',
|
|
'compare', 'convertScaleAbs', 'copyMakeBorder', 'countNonZero', 'determinant', 'dft', 'divide', 'eigen',
|
|
'exp', 'flip', 'getOptimalDFTSize','gemm', 'hconcat', 'inRange', 'invert', 'kmeans', 'log', 'magnitude',
|
|
'max', 'mean', 'meanStdDev', 'merge', 'min', 'minMaxLoc', 'mixChannels', 'multiply', 'norm', 'normalize',
|
|
'perspectiveTransform', 'polarToCart', 'pow', 'randn', 'randu', 'reduce', 'repeat', 'rotate', 'setIdentity', 'setRNGSeed',
|
|
'solve', 'solvePoly', 'split', 'sqrt', 'subtract', 'trace', 'transform', 'transpose', 'vconcat',
|
|
'setLogLevel', 'getLogLevel',
|
|
],
|
|
'Algorithm': [],
|
|
}
|
|
|
|
imgproc = {
|
|
'': [
|
|
'Canny',
|
|
'GaussianBlur',
|
|
'Laplacian',
|
|
'HoughLines',
|
|
'HoughLinesP',
|
|
'HoughCircles',
|
|
'Scharr',
|
|
'Sobel',
|
|
'adaptiveThreshold',
|
|
'approxPolyDP',
|
|
'arcLength',
|
|
'bilateralFilter',
|
|
'blur',
|
|
'boundingRect',
|
|
'boxFilter',
|
|
'calcBackProject',
|
|
'calcHist',
|
|
'circle',
|
|
'compareHist',
|
|
'connectedComponents',
|
|
'connectedComponentsWithStats',
|
|
'contourArea',
|
|
'convexHull',
|
|
'convexityDefects',
|
|
'cornerHarris',
|
|
'cornerMinEigenVal',
|
|
'createCLAHE',
|
|
'createLineSegmentDetector',
|
|
'cvtColor',
|
|
'demosaicing',
|
|
'dilate',
|
|
'distanceTransform',
|
|
'distanceTransformWithLabels',
|
|
'drawContours',
|
|
'ellipse',
|
|
'ellipse2Poly',
|
|
'equalizeHist',
|
|
'erode',
|
|
'filter2D',
|
|
'findContours',
|
|
'fitEllipse',
|
|
'fitLine',
|
|
'floodFill',
|
|
'getAffineTransform',
|
|
'getPerspectiveTransform',
|
|
'getRotationMatrix2D',
|
|
'getStructuringElement',
|
|
'goodFeaturesToTrack',
|
|
'grabCut',
|
|
#'initUndistortRectifyMap', # 4.x: moved to calib3d
|
|
'integral',
|
|
'integral2',
|
|
'isContourConvex',
|
|
'line',
|
|
'matchShapes',
|
|
'matchTemplate',
|
|
'medianBlur',
|
|
'minAreaRect',
|
|
'minEnclosingCircle',
|
|
'moments',
|
|
'morphologyEx',
|
|
'pointPolygonTest',
|
|
'putText',
|
|
'pyrDown',
|
|
'pyrUp',
|
|
'rectangle',
|
|
'remap',
|
|
'resize',
|
|
'sepFilter2D',
|
|
'threshold',
|
|
#'undistort', # 4.x: moved to calib3d
|
|
'warpAffine',
|
|
'warpPerspective',
|
|
'warpPolar',
|
|
'watershed',
|
|
'fillPoly',
|
|
'fillConvexPoly',
|
|
'polylines',
|
|
],
|
|
'CLAHE': ['apply', 'collectGarbage', 'getClipLimit', 'getTilesGridSize', 'setClipLimit', 'setTilesGridSize'],
|
|
'segmentation_IntelligentScissorsMB': [
|
|
'IntelligentScissorsMB',
|
|
'setWeights',
|
|
'setGradientMagnitudeMaxLimit',
|
|
'setEdgeFeatureZeroCrossingParameters',
|
|
'setEdgeFeatureCannyParameters',
|
|
'applyImage',
|
|
'applyImageFeatures',
|
|
'buildMap',
|
|
'getContour'
|
|
],
|
|
}
|
|
|
|
objdetect = {'': ['groupRectangles'],
|
|
'HOGDescriptor': ['load', 'HOGDescriptor', 'getDefaultPeopleDetector', 'getDaimlerPeopleDetector', 'setSVMDetector', 'detectMultiScale'],
|
|
'CascadeClassifier': ['load', 'detectMultiScale2', 'CascadeClassifier', 'detectMultiScale3', 'empty', 'detectMultiScale'],
|
|
'QRCodeDetector': ['QRCodeDetector', 'decode', 'decodeCurved', 'detect', 'detectAndDecode', 'detectMulti', 'setEpsX', 'setEpsY']}
|
|
|
|
video = {'': ['CamShift', 'calcOpticalFlowFarneback', 'calcOpticalFlowPyrLK', 'createBackgroundSubtractorMOG2', \
|
|
'findTransformECC', 'meanShift'],
|
|
'BackgroundSubtractorMOG2': ['BackgroundSubtractorMOG2', 'apply'],
|
|
'BackgroundSubtractor': ['apply', 'getBackgroundImage']}
|
|
|
|
dnn = {'dnn_Net': ['setInput', 'forward'],
|
|
'': ['readNetFromCaffe', 'readNetFromTensorflow', 'readNetFromTorch', 'readNetFromDarknet',
|
|
'readNetFromONNX', 'readNet', 'blobFromImage']}
|
|
|
|
features2d = {'Feature2D': ['detect', 'compute', 'detectAndCompute', 'descriptorSize', 'descriptorType', 'defaultNorm', 'empty', 'getDefaultName'],
|
|
'BRISK': ['create', 'getDefaultName'],
|
|
'ORB': ['create', 'setMaxFeatures', 'setScaleFactor', 'setNLevels', 'setEdgeThreshold', 'setFirstLevel', 'setWTA_K', 'setScoreType', 'setPatchSize', 'getFastThreshold', 'getDefaultName'],
|
|
'MSER': ['create', 'detectRegions', 'setDelta', 'getDelta', 'setMinArea', 'getMinArea', 'setMaxArea', 'getMaxArea', 'setPass2Only', 'getPass2Only', 'getDefaultName'],
|
|
'FastFeatureDetector': ['create', 'setThreshold', 'getThreshold', 'setNonmaxSuppression', 'getNonmaxSuppression', 'setType', 'getType', 'getDefaultName'],
|
|
'AgastFeatureDetector': ['create', 'setThreshold', 'getThreshold', 'setNonmaxSuppression', 'getNonmaxSuppression', 'setType', 'getType', 'getDefaultName'],
|
|
'GFTTDetector': ['create', 'setMaxFeatures', 'getMaxFeatures', 'setQualityLevel', 'getQualityLevel', 'setMinDistance', 'getMinDistance', 'setBlockSize', 'getBlockSize', 'setHarrisDetector', 'getHarrisDetector', 'setK', 'getK', 'getDefaultName'],
|
|
# 'SimpleBlobDetector': ['create'],
|
|
'KAZE': ['create', 'setExtended', 'getExtended', 'setUpright', 'getUpright', 'setThreshold', 'getThreshold', 'setNOctaves', 'getNOctaves', 'setNOctaveLayers', 'getNOctaveLayers', 'setDiffusivity', 'getDiffusivity', 'getDefaultName'],
|
|
'AKAZE': ['create', 'setDescriptorType', 'getDescriptorType', 'setDescriptorSize', 'getDescriptorSize', 'setDescriptorChannels', 'getDescriptorChannels', 'setThreshold', 'getThreshold', 'setNOctaves', 'getNOctaves', 'setNOctaveLayers', 'getNOctaveLayers', 'setDiffusivity', 'getDiffusivity', 'getDefaultName'],
|
|
'DescriptorMatcher': ['add', 'clear', 'empty', 'isMaskSupported', 'train', 'match', 'knnMatch', 'radiusMatch', 'clone', 'create'],
|
|
'BFMatcher': ['isMaskSupported', 'create'],
|
|
'': ['drawKeypoints', 'drawMatches', 'drawMatchesKnn']}
|
|
|
|
photo = {'': ['createAlignMTB', 'createCalibrateDebevec', 'createCalibrateRobertson', \
|
|
'createMergeDebevec', 'createMergeMertens', 'createMergeRobertson', \
|
|
'createTonemapDrago', 'createTonemapMantiuk', 'createTonemapReinhard', 'inpaint'],
|
|
'CalibrateCRF': ['process'],
|
|
'AlignMTB' : ['calculateShift', 'shiftMat', 'computeBitmaps', 'getMaxBits', 'setMaxBits', \
|
|
'getExcludeRange', 'setExcludeRange', 'getCut', 'setCut'],
|
|
'CalibrateDebevec' : ['getLambda', 'setLambda', 'getSamples', 'setSamples', 'getRandom', 'setRandom'],
|
|
'CalibrateRobertson' : ['getMaxIter', 'setMaxIter', 'getThreshold', 'setThreshold', 'getRadiance'],
|
|
'MergeExposures' : ['process'],
|
|
'MergeDebevec' : ['process'],
|
|
'MergeMertens' : ['process', 'getContrastWeight', 'setContrastWeight', 'getSaturationWeight', \
|
|
'setSaturationWeight', 'getExposureWeight', 'setExposureWeight'],
|
|
'MergeRobertson' : ['process'],
|
|
'Tonemap' : ['process' , 'getGamma', 'setGamma'],
|
|
'TonemapDrago' : ['getSaturation', 'setSaturation', 'getBias', 'setBias', \
|
|
'getSigmaColor', 'setSigmaColor', 'getSigmaSpace','setSigmaSpace'],
|
|
'TonemapMantiuk' : ['getScale', 'setScale', 'getSaturation', 'setSaturation'],
|
|
'TonemapReinhard' : ['getIntensity', 'setIntensity', 'getLightAdaptation', 'setLightAdaptation', \
|
|
'getColorAdaptation', 'setColorAdaptation']
|
|
}
|
|
|
|
aruco = {'': ['detectMarkers', 'drawDetectedMarkers', 'drawAxis', 'estimatePoseSingleMarkers', 'estimatePoseBoard', 'estimatePoseCharucoBoard', 'interpolateCornersCharuco', 'drawDetectedCornersCharuco'],
|
|
'aruco_Dictionary': ['get', 'drawMarker'],
|
|
'aruco_Board': ['create'],
|
|
'aruco_GridBoard': ['create', 'draw'],
|
|
'aruco_CharucoBoard': ['create', 'draw'],
|
|
'aruco_DetectorParameters': ['create']
|
|
}
|
|
|
|
calib3d = {
|
|
'': [
|
|
'findHomography',
|
|
'calibrateCameraExtended',
|
|
'drawFrameAxes',
|
|
'estimateAffine2D',
|
|
'getDefaultNewCameraMatrix',
|
|
'initUndistortRectifyMap',
|
|
'Rodrigues',
|
|
'solvePnP',
|
|
'solvePnPRansac',
|
|
'solvePnPRefineLM',
|
|
'projectPoints',
|
|
'undistort',
|
|
|
|
# cv::fisheye namespace
|
|
'fisheye_initUndistortRectifyMap',
|
|
'fisheye_projectPoints',
|
|
],
|
|
}
|
|
|
|
white_list = makeWhiteList([core, imgproc, objdetect, video, dnn, features2d, photo, aruco, calib3d])
|
|
|
|
# namespace_prefix_override['dnn'] = '' # compatibility stuff (enabled by default)
|
|
# namespace_prefix_override['aruco'] = '' # compatibility stuff (enabled by default)
|