import sys, re spaces = '[\s]*' symbols = '[\s\w\d,.:|]*' def pattern1(prefix, test): return re.compile(spaces + prefix + '_' + test + '::' + symbols + '::' + '\(' + symbols + '\)' + spaces) def pattern2(prefix, test, param1): return re.compile(spaces + prefix + '_' + test + '::' + symbols + '::' + '\(' + symbols + param1 + symbols + '\)' + spaces) def pattern3(prefix, test, param1, param2): return re.compile(spaces + prefix + '_' + test + '::' + symbols + '::' + '\(' + symbols + param1 + symbols + param2 + symbols + '\)' + spaces) def pattern4(prefix, test, param1, param2, param3): return re.compile(spaces + prefix + '_' + test + '::' + symbols + '::' + '\(' + symbols + param1 + symbols + param2 + symbols + param3 + symbols + '\)' + spaces) def pattern5(prefix, test, param1, param2, param3, param5): return re.compile(spaces + prefix + '_' + test + '::' + symbols + '::' + '\(' + symbols + param1 + symbols + param2 + symbols + param3 + symbols + param4 + symbols + '\)' + spaces) npp_patterns = [ ############################################################### # Core # Core_AddMat (CV_8U | CV_16U | CV_32F) pattern2('Core', 'AddMat', '8U'), pattern2('Core', 'AddMat', '16U'), pattern2('Core', 'AddMat', '32F'), # Core_AddScalar (CV_8U | CV_16U | CV_32F) pattern2('Core', 'AddScalar', '8U'), pattern2('Core', 'AddScalar', '16U'), pattern2('Core', 'AddScalar', '32F'), # Core_SubtractMat (CV_8U | CV_16U | CV_32F) pattern2('Core', 'SubtractMat', '8U'), pattern2('Core', 'SubtractMat', '16U'), pattern2('Core', 'SubtractMat', '32F'), # Core_SubtractScalar (CV_8U | CV_16U | CV_32F) pattern2('Core', 'SubtractScalar', '8U'), pattern2('Core', 'SubtractScalar', '16U'), pattern2('Core', 'SubtractScalar', '32F'), # Core_MultiplyMat (CV_8U | CV_16U | CV_32F) pattern2('Core', 'MultiplyMat', '8U'), pattern2('Core', 'MultiplyMat', '16U'), pattern2('Core', 'MultiplyMat', '32F'), # Core_MultiplyScalar (CV_8U | CV_16U | CV_32F) pattern2('Core', 'MultiplyScalar', '8U'), pattern2('Core', 'MultiplyScalar', '16U'), pattern2('Core', 'MultiplyScalar', '32F'), # Core_DivideMat (CV_8U | CV_16U | CV_32F) pattern2('Core', 'DivideMat', '8U'), pattern2('Core', 'DivideMat', '16U'), pattern2('Core', 'DivideMat', '32F'), # Core_Divide_Scalar (CV_8U | CV_16U | CV_32F) pattern2('Core', 'DivideScalar', '8U'), pattern2('Core', 'DivideScalar', '16U'), pattern2('Core', 'DivideScalar', '32F'), # Core_AbsDiff_Mat (CV_8U | CV_16U | CV_32F) pattern2('Core', 'AbsDiffMat', '8U'), pattern2('Core', 'AbsDiffMat', '16U'), pattern2('Core', 'AbsDiffMat', '32F'), # Core_AbsDiffScalar (CV_8U | CV_16U | CV_32F) pattern2('Core', 'AbsDiffScalar', '8U'), pattern2('Core', 'AbsDiffScalar', '16U'), pattern2('Core', 'AbsDiffScalar', '32F'), # Core_Abs pattern1('Core', 'Abs'), # Core_Sqr pattern1('Core', 'Sqr'), # Core_Sqrt pattern1('Core', 'Sqrt'), # Core_Log pattern1('Core', 'Log'), # Core_Exp pattern1('Core', 'Exp'), # Core_BitwiseAndScalar pattern1('Core', 'BitwiseAndScalar'), # Core_BitwiseOrScalar pattern1('Core', 'BitwiseOrScalar'), # Core_BitwiseXorScalar pattern1('Core', 'BitwiseXorScalar'), # Core_RShift pattern1('Core', 'RShift'), # Core_LShift pattern1('Core', 'LShift'), # Core_Transpose pattern1('Core', 'Transpose'), # Core_Flip pattern1('Core', 'Flip'), # Core_LutOneChannel pattern1('Core', 'LutOneChannel'), # Core_LutMultiChannel pattern1('Core', 'LutMultiChannel'), # Core_MagnitudeComplex pattern1('Core', 'MagnitudeComplex'), # Core_MagnitudeSqrComplex pattern1('Core', 'MagnitudeSqrComplex'), # Core_MeanStdDev pattern1('Core', 'MeanStdDev'), # Core_NormDiff pattern1('Core', 'NormDiff'), ############################################################## # Filters # Filters_Blur pattern1('Filters', 'Blur'), # Filters_Erode pattern1('Filters', 'Erode'), # Filters_Dilate pattern1('Filters', 'Dilate'), # Filters_MorphologyEx pattern1('Filters', 'MorphologyEx'), ############################################################## # ImgProc # ImgProc_Resize (8U, 1 | 4, INTER_NEAREST | INTER_LINEAR) pattern4('ImgProc', 'Resize', '8U', '1', 'INTER_NEAREST'), pattern4('ImgProc', 'Resize', '8U', '4', 'INTER_NEAREST'), pattern4('ImgProc', 'Resize', '8U', '1', 'INTER_LINEAR'), pattern4('ImgProc', 'Resize', '8U', '4', 'INTER_LINEAR'), # ImgProc_Resize (8U, 4, INTER_CUBIC) pattern4('ImgProc', 'Resize', '8U', '4', 'INTER_CUBIC'), # ImgProc_WarpAffine (8U | 32F, INTER_NEAREST | INTER_LINEAR | INTER_CUBIC, BORDER_CONSTANT) pattern4('ImgProc', 'WarpAffine', '8U' , 'INTER_NEAREST', 'BORDER_CONSTANT'), pattern4('ImgProc', 'WarpAffine', '8U' , 'INTER_LINEAR', 'BORDER_CONSTANT'), pattern4('ImgProc', 'WarpAffine', '8U' , 'INTER_CUBIC', 'BORDER_CONSTANT'), pattern4('ImgProc', 'WarpAffine', '32F', 'INTER_NEAREST', 'BORDER_CONSTANT'), pattern4('ImgProc', 'WarpAffine', '32F', 'INTER_LINEAR', 'BORDER_CONSTANT'), pattern4('ImgProc', 'WarpAffine', '32F', 'INTER_CUBIC', 'BORDER_CONSTANT'), # ImgProc_WarpPerspective (8U | 32F, INTER_NEAREST | INTER_LINEAR | INTER_CUBIC, BORDER_CONSTANT) pattern4('ImgProc', 'WarpPerspective', '8U' , 'INTER_NEAREST', 'BORDER_CONSTANT'), pattern4('ImgProc', 'WarpPerspective', '8U' , 'INTER_LINEAR', 'BORDER_CONSTANT'), pattern4('ImgProc', 'WarpPerspective', '8U' , 'INTER_CUBIC', 'BORDER_CONSTANT'), pattern4('ImgProc', 'WarpPerspective', '32F', 'INTER_NEAREST', 'BORDER_CONSTANT'), pattern4('ImgProc', 'WarpPerspective', '32F', 'INTER_LINEAR', 'BORDER_CONSTANT'), pattern4('ImgProc', 'WarpPerspective', '32F', 'INTER_CUBIC', 'BORDER_CONSTANT'), # ImgProc_CopyMakeBorder (8UC1 | 8UC4 | 32SC1 | 32FC1, BORDER_CONSTANT) pattern4('ImgProc', 'CopyMakeBorder', '8U' , '1', 'BORDER_CONSTANT'), pattern4('ImgProc', 'CopyMakeBorder', '8U' , '4', 'BORDER_CONSTANT'), pattern4('ImgProc', 'CopyMakeBorder', '32S', '1', 'BORDER_CONSTANT'), pattern4('ImgProc', 'CopyMakeBorder', '32F', '1', 'BORDER_CONSTANT'), # ImgProc_Threshold (32F, THRESH_TRUNC) pattern3('ImgProc', 'Threshold', '32F', 'THRESH_TRUNC'), # ImgProc_IntegralSqr pattern1('ImgProc', 'IntegralSqr'), # ImgProc_HistEven_OneChannel pattern1('ImgProc', 'HistEvenOneChannel'), # ImgProc_HistEven_FourChannel pattern1('ImgProc', 'HistEvenFourChannel'), # ImgProc_Rotate pattern1('ImgProc', 'Rotate'), # ImgProc_SwapChannels pattern1('ImgProc', 'SwapChannels'), # ImgProc_AlphaComp pattern1('ImgProc', 'AlphaComp'), # ImgProc_ImagePyramidBuild pattern1('ImgProc', 'ImagePyramidBuild'), # ImgProc_ImagePyramid_getLayer pattern1('ImgProc', 'ImagePyramidGetLayer'), ############################################################## # MatOp # MatOp_SetTo (8UC4 | 16UC1 | 16UC4 | 32FC1 | 32FC4) pattern3('MatOp', 'SetTo', '8U' , '4'), pattern3('MatOp', 'SetTo', '16U', '1'), pattern3('MatOp', 'SetTo', '16U', '4'), pattern3('MatOp', 'SetTo', '32F', '1'), pattern3('MatOp', 'SetTo', '32F', '4'), # MatOp_SetToMasked (8UC4 | 16UC1 | 16UC4 | 32FC1 | 32FC4) pattern3('MatOp', 'SetToMasked', '8U' , '4'), pattern3('MatOp', 'SetToMasked', '16U', '1'), pattern3('MatOp', 'SetToMasked', '16U', '4'), pattern3('MatOp', 'SetToMasked', '32F', '1'), pattern3('MatOp', 'SetToMasked', '32F', '4'), # MatOp_CopyToMasked (8UC1 | 8UC3 |8UC4 | 16UC1 | 16UC3 | 16UC4 | 32FC1 | 32FC3 | 32FC4) pattern3('MatOp', 'CopyToMasked', '8U' , '1'), pattern3('MatOp', 'CopyToMasked', '8U' , '3'), pattern3('MatOp', 'CopyToMasked', '8U' , '4'), pattern3('MatOp', 'CopyToMasked', '16U', '1'), pattern3('MatOp', 'CopyToMasked', '16U', '3'), pattern3('MatOp', 'CopyToMasked', '16U', '4'), pattern3('MatOp', 'CopyToMasked', '32F', '1'), pattern3('MatOp', 'CopyToMasked', '32F', '3'), pattern3('MatOp', 'CopyToMasked', '32F', '4'), ] cublasPattern = pattern1('Core', 'GEMM') cufftPattern = pattern1('ImgProc', 'Dft') if __name__ == "__main__": inputFile = open(sys.argv[1], 'r') lines = inputFile.readlines() inputFile.close() for i in range(len(lines)): if cublasPattern.match(lines[i]): lines[i] = lines[i][:-1] + ' [CUBLAS]\n' else: if cufftPattern.match(lines[i]): lines[i] = lines[i][:-1] + ' [CUFFT]\n' else: for p in npp_patterns: if p.match(lines[i]): lines[i] = lines[i][:-1] + ' [NPP]\n' outputFile = open(sys.argv[2], 'w') outputFile.writelines(lines) outputFile.close()