本文主要是基于IPP 9.0.3版本的使用手册进行提取编辑,简单介绍了,IPP图像库中的函数,从本文可以了解到IPP图像库中到底都有哪些函数,以及其基本功能。欢迎关注微信公众号“智能算法”!
章节概略:
第一章 基本规范
第二章 基本原型定义
第三章 基础函数
第四章 数据转换和初始化函数
第五章 图像中的数学运算和逻辑操作
第六章 图像颜色空间转换
第七章 阈值和比较操作
第八章 形态学操作
第九章 滤波函数
第十章 图像的线性变换
第十一章 图像统计函数
第十二章 图像几何变换
第十三章 其他图像变换
第十四章 小波变换
第十五章 计算机视觉
第十六章 三维数据处理函数
函数概略:
第一章 基本规范
比如函数命名规范,变量命名规范等,了解即可。
第二章 基本原型定义
一些结构体,枚举类型的定义,操作模板,ROI的定义等基本定义。
第三章 基础函数
1. ippiGetLibVersion: 返回IPP的版本信息
2. ippGetStatusString: 将状态信息转换成文本
3. ippiMalloc_: 为图像数据分配内存
4. ippiFree: 释放ippiMalloc分配的内存
第四章 数据转换和初始化函数
1. ippiConvert_: 数据类型之间的转换
2. ippiBinToGray_1u_C1R: 将二值图像转换为灰度图像
3. ippiGrayToBin_1u_C1R: 将灰度图像转换为二值图像
4. ippiScale_: 图像的映射尺度变换
5. ippiSet_: 将ROI像素值设置为常数
6. ippiCopy_: 对图像进行copy
7. ippiCopyManaged_8u_C1R: 用不同的copy方式对图像数据进行copy
8. ippiCopyConstBorder_: 对原图copy后在目标图像上添加一个常数边界
9. ippiCopyMirrorBorder_: 对原图copy后在目标图像上添加一个镜像边界
10. ippiCopyReplicateBorder_: 对原图copy后在目标图像上添加一个复制边界
11. ippiCopyWrapBorder_32s_C1R: 对原图copy后在目标图像上添加循环边界
12. ippiCopySubpix_: 用线性插值的方法进行亚像素copy
13. ippiCopySubpixIntersect_: 参考交叉点用线性插值的方法进行亚像素copy
14. ippiDup_8u_C1C3R: 将一幅灰度图像复制到彩色图像的所有通道
15. ippiTranspose_: 将一幅图像转置
16. ippiSwapChannels_: 将原图像某通道的数据copy到目标图像的指定通道
17. ippiAddRandUniform_: 为一幅图增加均匀分布的随机噪声
18. ippiAddRandGauss_: 为一幅图增加高斯分布的随机噪声
19. ippiImageJaehne_: 产生Jaehne测试图像(常测试滤波)
20. ippiImageRamp_: 产生斜坡灰度测试图像
21. ippiSampleLine_: 采样图像中两点之间的直线(原灰度值)
22. ippiZigzagFwd8x8_16s_C1: 将一幅图像像素顺序转换为按Z字形排布
23. ippiZigzagInv8x8_16s_C1: 将一幅图像顺序从Z字形转换为常规顺序
第五章 图像中的数学运算和逻辑操作
1. ippiAdd_: 两幅图像相加
2. ippiAddC_M: 一幅图像加上一个常数
3. ippiAddSquare_: 将原图像上像素值的平方加到目标图像
4. ippiAddProduct_: 将两幅图像对应像素乘积加到目标图像
5. ippiAddWeighted_: 将原图像像素权重相加到目标图像
6. ippiMul_: 两幅图像像素相乘存为新图像
7. ippiMulC_: 将一幅图像乘以常数值,存为新图像
8. ippiMulScale_: 两幅图像像素相乘并归一化存为新图像
9. ippiSub_: 两幅图像相减存为新图像
10. ippiSubC_: 将一幅图像减去常数值存为新图像
11. ippiDiv_: 两幅图像对应像素相除的结果存为新图像
12. ippiDiv_Round_: 两幅图像对应像素相除并取整
13. ippiDivC_: 将原图像除以常数值存为新图像
14. ippiAbs_: 对原图像(有符号图像)进行绝对值操作,存放在目标图像中。
15. ippiAbsDiff_: 两幅图像求差的绝对值,放到目标图像中
16. ippiAbsDiffC_: 将原图像减去常数值后取绝对值,存放在目标图像
17. ippiSqr_: 对原图像像素值求平方,存在目标图像中
18. ippiSqrt_: 对原图像素值开方,存在目标图像中
19. ippiLn_: 计算原图像像素值的自然对数,存放在目标图像中
20. ippiExp_: 计算原图像像素值的自然指数,存放在目标图像中
21. ippiDotProd_: 计算两幅图像的点乘,返回乘积值
22. ippiDotProdCol_32f_L2: 抽头向量和指定列的点乘
23. ippiAnd_: 两幅图像按位与操作,存放在结果图像中
24. ippiAndC_: 将原图与常数值做位与操作,存放在结果图像中
25. ippiOr_: 两幅图像按位或操作,存放在结果图像中
26. ippiOrC_: 将原图与常数值做位或操作,存放在结果图像中
28. ippiXor_: 两幅图像按位异或操作,存放在结果图像中
29. ippiXorC_: 将原图与常数值做位异或操作,存放在结果图像中
30. ippiNot_: 对原图像就按位求非操作,存放在结果图像中
31. ippiRShiftC_: 对图像像素值向右移位操作,存放在结果图像中
32. ippiLShiftC_: 对图像像素值向左移位操作,存放在结果图像中
33. ippiAlphaComp_: 通过alpha通道创作两幅图像
34. ippiAlphaCompC_: 通过常数值的alpha通道创作两幅图像
35. ippiAlphaPremul_: 对含alpha通道的图像的RGB三通道乘以归一化因子
36. ippiAlphaPremulC_: 对含alpha通道的图像的RGB三通道乘以alpha的归一化因子
第六章 图像颜色空间转换
1. ippiRGBToYUV_: 将图像从RGB空间转换到YUV空间
2. ippiYUVToRGB_: 将图像从YUV空间转换到RGB空间
3. ippiYUV422ToRGB_8u_C2C3R: 将YUV图像按照422比例采用转换到RGB空间
4. ippiRGBToYUV420_8u_P3R: 将RGB图像按420转化到YUV图像
5. ippiYUV420ToRGB_8u_P3R: 将YUV图像按照420比例采用转换到RGB空间
6. ippiBGRToYUV420_8u_P3R: 将BGR图像按420转化到YUV图像
7. ippiYUV420ToBGR_8u_P3R: 将YUV图像按照420比例采用转换到BGRY空间
8. ippiRGBToYCbCr_: 将图像从RGB空间转换到YCbCr空间
9. ippiYCbCrToRGB_: 将图像从YCbCr空间转换到RGB空间
10. ippiYCbCrToBGR_: 将图像从YCbCr空间转换到BGR空间
11. ippiYCbCrToBGR_709CSC_8u_P3C3R: 将图像从YCbCr空间转换BGR空间,ITU-RBT.709 CSC信号
12. ippiRGBToYCbCr422_8u_C3C2R: 将图像从RGB空间按422采样转换到YCbCr空间
13. ippiYCbCr422ToRGB_8u_C3C2R: 将图像从YCbCr空间按422采样转换到RGB空间
14. ippiRGBToYCrCb422_8u_C3C2R: 将24位RGB图转换为16位YCrCb图像
15. ippiYCrCb422ToRGB_8u_C2C3R: 将16位YCrCb图像转换到24位RGB图
16. ippiYCrCb422ToBGR_8u_C2C3R: 将16位YCrCb图像转换到24位BGR图
17. ippiBGRToYCrCb422_8u_C3C2R: 将24位BGR图转换为16位YCrCb图像
18. ippiYCbCr422ToBGR_8u_C2C3R: 将图像从YCbCr空间按422采样转换到BGR空间
19. ippiYCbCr422ToGray_8u_C2C1R: 将图像从YCbCr空间按422采样转换为灰度图像
20. ippiRGBToCbYCr422_8u_C3C2R: 将图像从24位RGB空间按422采样转换到16位CbYCr空间
21. ippiRGBToCbYCr422Gamma_8u_C3C2R: 将图像从24位RGB空间(Gamma校正后)按422采样转换到16位CbYCr空间
22. ippiCbYCr422ToRGB_8u_C2C3R: 将16位CbYCr图像转换到24位RGB图
23. ippiBGRToCbYCr422_8u_AC4C2R: 将32位BGR图转换为16位YCrCb图像
24. ippiBGRToCbYCr422_709HDTV_8u_C3C2R: 将BGR转换为CbYCr422空间,709HDTV信号
25. ippiCbYCr422ToBGR_8u_C2C4R: 将16位CbYCr信号转换为4通道BGR图像
26. ippiCbYCr422ToBGR_709HDTV_8u_C3C2R: 将CbYCr422转换到BGR空间,709HDTV信号
27. ippiRGBToYCbCr420_8u_C3P3R: 将图像从RGB空间按420采样转换到YCbCr空间
28. ippiYCrCb420ToRGB_8u_P3C3R: 将16位YCrCb图像转换到24位RGB图
29. ippiYCrCb420ToBGR_8u_P2C3R: 将16位YCrCb图像转换到24位BGR图
30. ippiRGBToYCrCb420_8u_AC4P3R: 将RGB图转换为YCrCb图像
31. ippiYCrCb420ToRGB_8u_P2C4R: 将YCrCb图像转换到RGB图
32. ippiYCrCb420ToBGR_8u_P2C4R: 将YCrCb图像转换到BGR图
33. ippiBGRToYCbCr420_8u_C3P3R: 将BGR图像转换位YCbCr图
34. ippiBGRToYCbCr420_709CSC_8u_P3C2R: 将图像从YCbCr空间转换BGR空间,ITU-RBT.709 CSC信号
35. ippiBGRToCbYCr420_709HDTV_8u_AC4P3R: 将BGR转换为CbYCr422空间,709HDTV信号
36. ippiBGRToYCrCb420_709CSC_8u_AC4P3R: 将图像从YCbCr空间转换BGR空间,ITU-RBT.709 CSC信号
37. ippiYCbCr420ToBGR_8u_P3C3R: 将YCbCr图像按420转换到BGR空间
38. ippiYCbCr420ToBGR_709CSC_8u_P3C3R: 将图像从YCbCr420空间转换BGR空间,ITU-RBT.709 CSC信号
39. ippiYCbCr420ToBGR_709HDTV_8u_P3C4R: 将图像从YCbCr420空间转换BGR空间,ITU-RBT.709 HDTV信号
40. ippiBGRToYCrCb420_8u_C3P3R: BGR图像转换为YCrCb
41. ippiBGRToYCbCr411_8U_C3P3R: BGR图像转换为YCrCb
42. ippiYCbCr411ToBGR_8u_P3C3R: YCrCb图像转换为BGR
43. ippiRGBToXYZ_: 将RGB转换到XYZ空间
44. ippiXYZToRGB_: 将XYZ空间转换到RGB
45. ippiRGBToLUV_:将RGB转换为LUV
46. ippiBGRToLUV_:将BGR转换为LUV
47. ippiLUVToRGB_:将LUV转换位RGB
48. ippiLUVToBGR_:将LUV转换为BGR
49. ippiBGRToLab_8u_C3R:将BGR转换为Lab
50. ippiRGBToLab_8u_C3R:将RGB转换为Lab
51. ippiLabToBGR_8u_C3R:Lab转换为BGR
52. ippiLabToRGB_8u_C3R:Lab转换为RGB
53. ippiRGBToYCC_:RGB转换为YCC
54. ippiYCCToRGB_:YCC转换为RGB
55. ippiRGBToHLS_:RGB转换为HLS
56. ippiHLSToRGB_:HLS转换为RGB
57. ippiBGRToHLS_8u_AC4R:BGR转换为HLS
58. ippiHLSToBGR_8u_C3P3R:HLS转换为BGR
59. ippiRGBToHSV_: RGB转换为HSV
60. ippiHSVToRGB_:HSV转换为RGB
61. ippiRGBToYCoCg_8u_C3P3R:RGB转换为YCoCg
62. ippiYCoCgToRGB_8u_P3C3R: YCoCg转换为RGB
63. ippiBGRToYCoCg_8u16s_C3P3R:24位BGR转换为YCoCg
64. ippiSBGRToYCoCg_: 48位的BGR转换为YCoCg
65. ippiYCoCgToBGR_16s8u_P3C3R:YCoCg转换为24位BGR
66. ippiYCoCgToSBGR_16s_P3C3R:YCoCg转换为48位BGR
67. ippiBGRToYCoCg_Rev_8u16s_C3P3R:24位BGR转换为YCoCg-R
68. ippiSBGRToYCoCg_Rev_:48位的BGR转换为YCoCg-R
69. ippiYCoCgToBGR_Rev_16s8u_P3C3R:YCoCg-R转换为24位BGR
70. ippiYCoCgToSBGR_Rev_16s_P3C3R:YCoCg-R转换为48位BGR
71. ippiGrayToRGB_:灰度图像转换为RGB多通道图像
72. ippiRGBToGray_:RGB图像转换为灰度图像
73. ippiColorToGray_:用自定义的系数将RGB转换为灰图像
74. ippiCFAToRGB_8u_C1C3R:将灰度图像经过CFA滤波转换为RGB
75. ippiDemosaicAHD_8u_C1C3R:将灰度图像经过CFA滤波和AHD算法后转换为RGB图像
76. ippiYCbCr422_8u_C2P3R:将YCbCr两通道图像转换为三平面图像
77. ippiYCbCr422ToYCrCb422_8u_C2R:将YCbCr422转换为YCrCb422
78. ippiYCbCr422ToCbYCr422_8u_C2R:将YCbCr422转换为CbYCr422
79. ippiYCbCr422ToYCbCr420_8u_P3R:YCbCr422转换为YCbCr420
80. ippiYCbCr422To420_Interlace_8u_P3R:YCbCr422转换为420
81. ippiYCbCr422ToYCrCb420_8u_C2P3R:YCbCr422转换为YCrCb420
82. ippiYCbCr422ToYCbCr411_8u_P3R:YCbCr422转换为YCbCr411
83. ippiYCrCb422ToYCbCr422_8u_C2P3R:YCrCb422转换为YCbCr422
84. ippiYCrCb422ToYCbCr420_8u_C2P3R:YCrCb422转换为YCbCr420
85. ippiYCrCb422ToYCbCr411_8u_C2P3R:YCrCb422转换为YCbCr411
86. ippiCbYCr422ToYCbCr422_8u_C2R:CbYCr422转换为YCbCr422
87. ippiCbYCr422ToYCbCr420_8u_C2P3R:CbYCr422转换为YCbCr420
88. ippiCbYCr422ToYCbCr420_Interlace_8u_C2P3R:CbYCr422转换为YCbCr420
89. ippiCbYCr422ToYCrCb420_8u_C2P3R:CbYCr422转换为YCrCb420
90. ippiCbYCr422ToYCbCr411_8u_C2P3R:CbYCr422转换为YCbCr411
91. ippiYCbCr420_8u_P3P2R:YCbCr420的3平面转换为2平面
92. ippiYCbCr420ToYCbCr422_8u_P3R:YCbCr420转换为YCbCr422
93. ippiYCbCr420ToYCbCr422_Filter_8u_P3R:YCbCr420转换为YCbCr422
94. ippiYCbCr420To422_Interlace_8u_P3R:YCbCr420转换为422
95. ippiYCbCr420ToCbYCr422_8u_P2C2R:YCbCr420转换为CbYCr422
96. ippiYCbCr420ToCbYCr422_Interlace_8u_P3C2R:YCbCr420转换为CbYCr422
97. ippiYCbCr420ToYCrCb420_8u_P2P3R:YCbCr420转换为YCrCb420
98. ippiYCbCr420ToYCrCb420_Filter_8u_P2P3R:YCbCr420转换为YCrCb420
99. ippiYCbCr420ToYCbCr411_8u_P3P2R:YCbCr420转换为YCbCr411
100. ippiYCrCb420ToYCbCr422_8u_P3R:YCrCb420转换为YCbCr422
101. ippiYCrCb420ToYCbCr422_Filter_8u_P3R:YCrCb420转换为YCbCr422
103. ippiYCrCb420ToCbYCr422_8u_P3C2R:YCrCb420转换为CbYCr422
104. ippiYCrCb420ToYCbCr420_8u_P3P2R:YCrCb420转换为YCbCr420
105. ippiYCrCb420ToYCbCr411_8u_P3P2R:YCrCb420转换为YCbCr411
106. ippiYCbCr411_8u_P3P2R:将YCbCr411从3平面转换为2平面
107. ippiYCbCr411ToYCbCr422_8u_P3R:YCbCr411转换为YCbCr422
108. ippiYCbCr411ToYCrCb422_8u_P3R:YCbCr411转换为YCrCb422
109. ippiYCbCr411ToYCbCr420_8u_P3R:YCbCr411转换为YCbCr420
110. ippiYCbCr411ToYCrCb420_8u_P2P3R:YCbCr411转换为YCrCb420
111. ippiColorTwist_:色彩变换,图像数据可以是浮点型
112. ippiColorTwist32f_:色彩变换,图像数据是整形
113. ippiCompColorKey_:两幅图像的颜色匹配
114. ippiAlphaCompColorKey_8u_AC4R:包括alpha通道的两幅图像匹配
115. ippiGammaFwd_:对原图像进行Gamma校正
116. ippiGammaInv_:将Gamma校正后的图像恢复为原图像
从此开始出现“函数组”,即实现一个功能,可能需要几个函数的配合
117.1. ippiReduceBitsGetBufferSize:为函数ippiReduceBits计算工作内存空间
117.2. ippiReduceBits_:降低图像的分辨率
118.1. ippiLUT_GetSize:为查找表降低分辨率计算工作空间
118.2. ippiLUT_Init_8u:初始化查找表结构体
118.3. ippiLUT_:通过查找表的方法实现灰度变换
119. ippiLUTPalette_:通过调色板查找表实现灰度降阶
120. ippiToneMapLinear_32f8u_C1R:将图像从HDRI映射到LDRI
121. ippiToneMapMean_32f8u_C1R:将图像从HDRI映射到LDRI
第七章 阈值和比较操作
1. ippiThreshold_:对图像进行阈值处理
2. ippiThreshold_GT_:对图像进行阈值处理,将大于阈值的设置为阈值
3. ippiThreshold_LT_:对图像进行阈值处理,将小于阈值的设置为阈值
4. ippiThreshold_Val_:对图像进行阈值处理,将满足设定条件的设置为固定值
5. ippiThreshold_GTVal_:对图像进行阈值处理,将大于阈值的设置为固定值
6. ippiThreshold_LTVal_:对图像进行阈值处理,将小于阈值的设置为固定值
7. ippiThreshold_LTValGTVal_:对图像进行双阈值处理
8. ippiComputeThreshold_Otsu_8u_C1R:计算OTSU阈值
9. ippiCompare_:对两幅图像中的每个像素进行比较,比较结果存在目标图像中
10. ippiCompareC_:将原图像中的每个像素与常数值进行比较,比较结果存在目标图像中
11. ippiCompareEqualEps_:将对两幅图像中的每个像素在一个误差内进行比较,比较结果存在目标图像中
12. ippiCompareEqualEpsC_32f_C1R:将对原图像中的每个像素在一个误差内与常数值进行比较,比较结果存在目标图像中
第八章 形态学操作
1. ippiDilate3x3_64f_C1R:3X3膨胀操作
2. ippiErode3x3_64f_C1R:3X3腐蚀操作
3.1. ippiMorphologyBorderGetSize_:计算形态学操作结构的大小
3.2. ippiMorphologyBorderInit_:为形态学边界操作初始化
3.3. ippiErodeBorder_:腐蚀操作
3.3. ippiDilateBorder_:膨胀操作
4.1. ippiMorphAdvGetSize_::高级形态学处理获取内存大小
4.2. ippiMorphAdvInit_:高级形态学处理初始化
4.3. ippiMorphOpenBorder_:对图像进行开操作
4.3. ippiMorphCloseBorder_:对图像进行闭操作
4.3. ippiMorphTophatBorder_:对图像进行顶帽变换
4.3. ippiMorphBlackhatBorder_:对图像进行底帽变换
4.3. ippiMorphGradientBorder_:获得梯度边界
5.1. ippiMorphGrayGetSize_8u_C1R:获取灰度形态学工作内存大小
5.2. ippiMorphGrayInit_8u_C1R:灰度形态学初始化
5.3. ippiGrayDilateBorder_8u_C1R:对灰度图像进行膨胀处理
5.3. ippiGrayErodeBorder_8u_C1R:对灰度图像进行腐蚀处理
6.1. ippiMorphReconstructGetBufferSize:灰度形态学重建获取工作内存大小
6.2. ippiMorphReconstructDilate_:通过膨胀对图像进行形态学重建
6.2. ippiMorphReconstructErode_:通过腐蚀对图像进行形态学重建
第九章 滤波函数
1.1. ippiFilterBilateralBorderGetBufferSize:计算滤波器模板和工作空间的大小
1.2. ippiFilterBilateralBorderInit:初始化滤波器模板
1.3. ippiFilterBilateralBorder_:对原图像进行双边滤波器滤波
2.1. ippiFilterBoxBorderGetBufferSize:为box filter计算工作空间大小
2.2. ippiFilterBoxBorder_:用box滤波器对图像进行滤波
3. ippiFilterBox_64f_C1R:用box滤波器对图像进行滤波
4. ippiSumWindowRow_:对一个行模板的像素值求和,放至目标图像
5. ippiSumWindowRow_:对一个列模板的像素值求和,放至目标图像
6.1. ippiFilterMaxBorderGetBufferSize: 为最大值滤波计算工作空间
6.2. ippiFilterMaxBorder_8u_C1R:对图像进行最大值滤波
7.1. ippiFilterMinBorderGetBufferSize:为最小值滤波计算工作空间
7.2. ippiFilterMinBorder_8u_C1R:对图像进行最小值滤波
8. ippiDecimateFilterRow_8u_C1R:用行抽取滤波器对图像滤波
9. ippiDecimateFilterColumn_8u_C1R:用列抽取滤波器对图像滤波
10.1. ippiFilterMedianBorderGetBufferSize:为均值滤波器计算工作空间
10.2. ippiFilterMedianBorder_:对图像进行均值滤波
11.1. ippiFilterMedianGetBufferSize_32f:为中值滤波器计算工作空间
11.2. ippiFilterMedian_:对图像进行中值滤波
12. ippiFilterMedianCross_:用交叉中值滤波器对图像滤波
13. ippiFilterMedianWeightedCenter3x3_8u_C1R:带权重的中值滤波器
14. ippiFilterMedianColor_:彩色图像的中值滤波
15.1. ippiFilterBorderGetSize:计算滤波器规格大小和工作空间
15.2. ippiFilterBorderGetSize:初始化滤波器规格结构体
15.3. ippiFilterBorderSetMode:为滤波器设置模式
15.4. ippiFilterBorder_:矩形滤波器
16.1. ippiFilterGetBufSize_64f_C1R:为滤波器计算工作空间
16.2. ippiFilter_64f_C1R:用一般的矩形核进行滤波
17.1 ippiFilterRowBorderPipelineGetBufferSize_: 为可分离行滤波器计算工作空间
17.2. ippiFilterRowBorderPipelineGetBufferSize_Low_:为可分离行滤波器计算工作空间
17.3. ippiFilterRowBorderPipeline_:可分离行滤波器
18.1. ippiFilterColumnPipelineGetBufferSize_:为可分离列滤波器计算工作空间
18.2. ippiFilterColumnPipelineGetBufferSize_:为可分离列滤波器计算工作空间
18.3. ippiFilterColumnPipeline_:可分离列滤波器
19.1. ippiFilterWienerGetBufferSize:计算维也纳滤波器工作空间
19.2. ippiFilterWiener_:维也纳滤波器
20.1. ippiConvGetBufferSize:计算卷积工作空间
20.2. ippiConv_:两幅图像的二维卷积
21.1. ippiDeconvFFTGetSize_32f:用FFT的方法计算去卷积工作空间
21.2. ippiDeconvFFTInit_32f_C1R:为FFT去卷积初始化
21.3. ippiDeconvFFT_32f_C1R:FFT去卷积
22.1. ippiDeconvLRGetSize_32f:计算LR变换去卷积的工作空间
22.2. ippiDeconvLRInit_32f_C1R:LR去卷积初始化
22.3. ippiDeconvLR_32f_C1R:LR去卷积
23.1. ippiFilterGaussianGetBufferSize:计算高斯滤波器工作空间
23.2. ippiFilterGaussianInit:初始化高斯滤波器模板
23.3. ippiFilterGaussianBorder_:高斯滤波器
24.1. ippiFilterHipassBorderGetBufferSize:为高通滤波器计算工作空间
24.2. ippiFilterHipassBorder_8u_C1R:高通滤波器
25.1. ippiFilterLaplaceBorderGetBufferSize:计算laplace滤波器工作空间
25.2. ippiFilterLaplaceBorder_8u_C1R:laplace滤波器
26.1. ippiFilterLaplacianGetBufferSize_:计算laplace和边界的工作空间
26.2. ippiFilterLaplacianBorder_:对图像和边界进行laplace滤波
27.1. ippiFilterLowpassGetBufferSize_8u_C1R:低通滤波器计算工作空间
27.2. ippiFilterLowpassGetBufferSize_8u_C1R:低通滤波器
28.1. ippiFilterPrewittHorizBorderGetBufferSize:Prewitt水平滤波器计算工作空间
28.2. ippiFilterPrewittHorizBorder_:Prewitt水平滤波器
29.1. ippiFilterPrewittVertBorderGetBufferSize:Prewitt竖直滤波器计算工作空间
29.2. ippiFilterPrewittVertBorder_:Prewitt竖直滤波器
30.1. ippiFilterRobertsUpBorderGetBufferSize:计算Roberts垂直滤波器工作空间
30.2. ippiFilterRobertsUpBorder_:Roberts垂直滤波器
31.1. ippiFilterRobertsDownBorderGetBufferSize:计算Roberts水平滤波器工作空间
31.2. ippiFilterRobertsDownBorder_:Roberts水平滤波器
32.1. ippiFilterScharrHorizMaskBorderGetBufferSize:Scharr水平滤波器计算工作空间
32.2. ippiFilterScharrHorizMaskBorder_:Scharr水平滤波器
33.1. ippiFilterScharrVertMaskBorderGetBufferSize:Scharr竖直滤波器计算工作空间
33.2. ippiFilterScharrVertMaskBorder_:Scharr竖直滤波器
34.1. ippiFilterSharpenBorderGetBufferSize:计算边缘锐化的工作空间
34.2. ippiFilterSharpenBorder_8u_C1R:边缘锐化滤波器
35.1. ippiFilterSobelGetBufferSize:Sobel滤波器计算工作空间
35.2. ippiFilterSobel_:Sobel滤波器
36.1. ippiFilterSobelHorizBorderGetBufferSize: Sobel水平滤波器计算工作空间
36.2. ippiFilterSobelHorizBorder_: Sobel水平滤波器
37.1. ippiFilterSobelHorizSecondBorderGetBufferSize:Sobel水平二阶滤波器计算工作空间
37.2. ippiFilterSobelHorizSecondBorder_: Sobel水平二阶滤波器
38.1. ippiFilterSobelVertBorderGetBufferSize:Sobel竖直滤波器计算工作空间
38.2. ippiFilterSobelVertBorder_:Sobel竖直滤波器
39.1. ippiFilterSobelVertSecondBorderGetBufferSize:Sobel竖直二阶滤波器计算工作空间
39.2. ippiFilterSobelVertSecondBorder_:Sobel竖直二阶滤波器
40.1. ippiFilterSobelNegVertBorderGetBufferSize:带边界的Sobel滤波器的工作空间的计算
40.2. ippiFilterSobelNegVertBorder_:带边界的Sobel滤波器
41.1. ippiFilterSobelCrossGetBufferSize_:Sobel交叉滤波器计算工作空间
41.2. ippiFilterSobelCrossBorder_:Sobel交叉滤波器
42. ippiGenSobelKernel_16s:为Sobel滤波器计算核
43. ippiDeinterlaceFilterCAVT_8u_C1R:对二维图像进行逐行滤波
44. ippiMedian_8u_P3C1R:利用三幅图像的中值进行创建新图像
第十章 图像的线性变换
1.1. ippiFFTGetSize_R_32f:计算FFT的结构和工作空间大小
1.2. ippiFFTInit_R_32f:FFT初始化
1.3. ippiFFTFwd_RToPack_:FFT
1.3. ippiFFTInv_PackToR_:反FFT
2.1. ippiDFTGetSize_R_32f: 计算DFT的结构和工作空间大小
2.2. ippiDFTInit_R_32f:DFT初始化
2.3. ippiDFTFwd_RToPack_:DFT变换
2.3. ippiDFTFwd_RToPack_:反DFT
3. ippiMulPack_:两幅图像(打包格式)相乘
4. ippiMulPackConj_:原图像乘以共轭图像(打包格式)
5. ippiMagnitude_:计算复数图像的幅度
6.1. ippiMagnitudePackGetBufferSize_32f:计算幅度(打包格式)的工作空间
6.2. ippiMagnitudePack_:计算图像的幅度(打包格式)
7. ippiPhase_:计算复数图像的相位
8.1. ippiPhasePackGetBufferSize_32f:计算复数图像的相位的工作空间(打包格式)
8.2. ippiPhasePack_:计算复数图像的相位(打包格式)
9. ippiPolarToCart_:将图像由极坐标转换为直角坐标
10. ippiPackToCplxExtend_32f32fc_C1R:将图像转换为复数图像(打包格式)
11. ippiCplxExtendToPack_:将复数图像转化为实数图像(打包格式)
12.1. ippiWinBartlettGetBufferSize:计算窗口Bartlett变换的工作空间
12.2. ippiWinBartlett_:窗口Bartlett变换
13.1. ippiWinBartlettSepGetBufferSize:计算窗口Bartlett sep变换的工作空间
13.2. ippiWinBartlettSep_:窗口Bartlett变换
14.1. ippiWinHammingGetBufferSize:计算窗口Hamming的工作空间
14.2. ippiWinHamming_:窗口Hamming变换
15.1. ippiWinHammingSepGetBufferSize:计算窗口Hamming sep的工作空间
15.2. ippiWinHammingSep_:窗口Hamming变换
16.1. ippiDCTFwdGetSize_32f:离散cos变换计算工作空间
16.2. ippiDCTFwdInit_32f:离散cos变换初始化
16.3. ippiDCTFwd_:离散cos变换
17.1. ippiDCTInvGetSize_32f:离散cos反变换计算工作空间
17.2. ippiDCTInvInit_32f:离散cos反变换初始化
17.3. ippiDCTInv_:离散cos反变换
18. ippiDCT8x8Fwd_:8X8的DCT变换
19. ippiDCT8x8Inv_:8X8的DCT反变换
20. ippiDCT8x8FwdLS_8u16s_C1R:用先验数据转换和等级平移的 8X8的DCT变换
21. ippiDCT8x8InvLSClip_16s8u_C1R:用先验数据转换和等级平移的 8X8的DCT反变换
第十一章 图像统计函数
1. ippiSum_:计算图像像素值的和
2. ippiIntegral_8u32s_C1R:转换为积分图像
3. ippiSqrIntegral_8u32s64f_C1R:转换为平方积分图像
4. ippiTiltedIntegral_8u32f_C1R:转换为不平衡的积分图像
5. ippiTiltedSqrIntegral_8u32s_C1R:转换为不平衡的平方积分图像
6. ippiMean_:计算图像的均值
7. ippiMean_StdDev_:计算图像的均值和标准差
8. ippiRectStdDev_32f_C1R:计算积分图像的标准差
9. ippiTiltedRectStdDev_32f_C1R:计算不平衡积分图像的标准差
10.1. ippiHistogramGetBufferSize:计算直方图的工作空间
10.2. ippiHistogramGetLevels:计算图像的直方图的灰度等级
10.3. ippiHistogramInit:计算直方图初始化
10.3. ippiHistogramUniformInit:直方图均衡初始化
10.4. ippiHistogram_:直方图计算
11. ippiCountInRange_:计算给定灰度值范围内的像素个数
12. ippiBlockMinMax__C1R:找出block中的最小值和最大值
13. ippiMin_:找出图像中的最小值
14. ippiMinIndx_:计算图像中最小值的坐标和最小值
15. ippiMax_:找出图像中最大值
16. ippiMaxIndx_:找出图像中最大值及其坐标
17. ippiMinMax_:计算图像的最小值和最大值
18. ippiMinMaxIndx_:计算图像的最小和最大值并返回坐标
19. ippiMaxEvery_8u_C1R:计算两幅图像中的最大值, 并存放在目标图像中
20. ippiMinEvery_8u_C1R:计算两幅图像中的最小值, 并存放在目标图像中
21.1. ippiFindPeaks3x3GetBufferSize_32s_C1R:为找峰值函数计算工作空间
21.2. ippiFindPeaks3x3_32s_C1R:计算图像的峰值
22.1. ippiMomentGetStateSize_64f:计算图像距的工作空间
22.2. ippiMomentInit_64f:初始化距
22.3. ippiMoments64f_:计算图像距
23.4. ippiGetSpatialMoment_64f:计算空间距
23.4. ippiGetCentralMoment_64f:计算中心距
23.4.ippiGetNormalizedSpatialMoment_64f:归一化空间距
23.4.ippiGetNormalizedCentralMoment_64f:归一化中心距
23.4.ippiGetHuMoments_64f:获得Hu距
24. ippiNorm_Inf_:计算无穷范数
25. ippiNorm_L1_:计算一阶范数
26. ippiNorm_L2_:计算二阶范数
27. ippiNormDiff_Inf_:计算两幅图像差的无穷范数
28. ippiNormDiff_L1_:计算两幅图像差的一阶范数
29. ippiNormDiff_L2_:计算两幅图像差的二阶范数
30. ippiNormRel_Inf_:计算两幅图像差的无穷范数的相对误差
31. ippiNormRel_L1_:计算两幅图像差的一阶范数的相对误差
32. ippiNormRel_L2_:计算两幅图像差的二阶范数的相对误差
33.1. ippiQualityIndexGetBufferSize:计算图像质量因子的工作空间
33.2. ippiQualityIndex_:计算图像质量因子
34.1. ippiSqrDistanceNormGetBufferSize:计算欧式距离度量的工作空间
34.2. ippiSqrDistanceNorm_8u_C1RSfs:计算两幅图像的欧式距离
35.1. ippiCrossCorrNormGetBufferSize:计算十字距离的工作空间
35.2. ippiCrossCorrNorm_8u_C1RSfs:计算两幅图像的十字距离
36.1. ippiSADGetBufferSize:计算SAD的工作空间
36.2. ippiSAD_:SAD计算
第十二章 图像几何变换
1.1. ippiResizeYCbCr422GetBufSize:对NV12的resize变换计算工作空间大小
1.2. ippiResizeYCbCr422_8u_C2R:对YCbCr422进行缩放
2. ippiResizeGetSize_:对图像缩放进行计算工作空间和规格
3. ippiResizeGetBufferSize_对图像缩放进行计算工作空间
4. ippiResizeGetBorderSize_:对图像缩放计算边界大小
5. ippiResizeGetSrcOffset_:计算缩放的初始值
6. ippiResizeGetSrcRoi_:计算缩放的ROI
7.1. ippiResizeNearestInit_:最近邻插值缩放初始化
7.2. ippiResizeNearest_:最近邻插值缩放
8.1. ippiResizeLinearInit_:线性插值缩放初始化
8.2. ippiResizeLinear_:线性插值缩放
9.1. ippiResizeCubicInit_:三次方插值缩放初始化
9.2. ippiResizeCubic_:三次方插值缩放
10.1. ippiResizeLanczosInit_:分块法插值缩放初始化
10.2. ippiResizeLanczos_:分块法插值缩放
11.1. ippiResizeSuperInit_:超采样插值缩放初始化
11.2. ippiResizeSuper_:超采样插值缩放
12.1. ippiResizeAntialiasingLinearInit:线性插值反锯齿缩放初始化
12.1. ippiResizeAntialiasingCubicInit:三次方插值反锯齿缩放初始化
12.1. ippiResizeAntialiasingCubicInit:分块法插值反锯齿缩放初始化
12.2. ippiResizeAntialiasing__:反锯齿缩放
13.1. ippiResizeFilterGetSize_8u_C1R:计算缩放滤波器的工作空间
13.2. ippiResizeFilterInit_8u_C1R:缩放滤波器初始化
13.3. ippiResizeFilter_8u_C1R:通用的缩放滤波器
14.1. ippiResizeYUV420GetSize:ResizeYUV420缩放工作空间的计算
14.2. ippiResizeYUV420LanczosInit:ResizeYUV420分块缩放初始化
14.2. ippiResizeYUV420SuperInit:ResizeYUV420超采样缩放初始化
14.3. ippiResizeYUV420GetBorderSize:计算NV12缩放边界大小
14.4. ippiResizeYUV420GetSrcOffset:计算NV12缩放图像的预设值
14.5. ippiResizeYUV420GetBufferSize:分配NV12缩放变换的工作空间
14.6. ippiResizeYUV420Lanczos_8u_P2R:通过分块法插值方法对原图进行缩放
14.6. ippiResizeYUV420Super_8u_P2R:通过超采样插值方法对原图进行缩放
15.1. ippiResizeYUV422GetSize:计算YUY2缩放变换的工作空间大小和spec大小
15.2. ippiResizeYUV422GetBorderSize:计算YUY2缩放变换边界的大小
15.3. ippiResizeYUV422GetSrcOffset:计算YUY2缩放图像的预设值
15.4. ippiResizeYUV422GetBufSize:分配YUY2缩放变换的工作空间
15.5. ippiResizeYUV422NearestInit:YUY2缩放变换最近邻插值初始化
15.5. ippiResizeYUV422LinearInit:YUY2缩放变换线性插值初始化
15.6. ippiResizeYUV422Nearest_8u_C2R:UY2缩放变换最近邻插值
15.6. ippiResizeYUV422Linear_8u_C2R:YUY2缩放变换线性插值
16.1. ippiGetAffineQuad:计算放射变换的顶点
16.2. ippiGetAffineBound:计算仿射变换的边界
16.3. ippiGetAffineTransform:仿射变换
17. ippiGetRotateTransform:计算旋转变换的系数
18. ippiGetRotateShift:计算旋转变换的偏移值
19.1. ippiWarpAffineGetSize:计算变形放射的工作空间大小和规格
19.2. ippiWarpQuadGetSize:计算任意方形的循环仿射的工作空间大小和规格
19.3. ippiWarpGetBufferSize:计算变形变换的工作空间
19.4. ippiWarpAffineNearestInit:最近邻插值仿射变换初始化
19.4. ippiWarpQuadNearestInit:最近邻插值仿射变换初始化
19.4. ippiWarpAffineLinearInit:线性插值仿射变化初始化
19.4. ippiWarpQuadLinearInit:线性插值仿射变化初始化
19.4. ippiWarpAffineCubicInit:三次方插值仿射变换初始化
19.4. ippiWarpQuadCubicInit:三次方插值仿射变换初始化
19.5. ippiWarpAffineNearest_:最近邻插值仿射变换
19.5. ippiWarpAffineLinear_:线性插值仿射变化
19.5. ippiWarpAffineCubic_:三次方插值仿射变换
20.1. ippiGetPerspectiveQuad:计算透视变换的顶点坐标
20.2. ippiGetPerspectiveBound:计算透视变换的边界
20.3. ippiGetPerspectiveTransform:透视变换
21.1. ippiWarpPerspectiveGetSize:计算透视变换的spec和工作空间
21.2. ippiWarpPerspectiveNearestInit:最近邻插值透视变换初始化
21.2. ippiWarpPerspectiveNearest_:线性插值透视变换初始化
21.2. ippiWarpPerspectiveCubicInit:三次方插值透视变换初始化
21.3. ippiWarpPerspectiveNearest_:最近邻插值透视变换
21.3. ippiWarpPerspectiveLinear_:线性插值透视变换
21.3. ippiWarpPerspectiveCubic_:三次方插值透视变换
22.1. ippiGetBilinearQuad:计算双线性变换的顶点坐标
22.2. ippiGetBilinearBound:计算双线性变换的边界
22.3. ippiGetBilinearTransform:双线性变换
23.1. ippiWarpBilinearGetBufferSize:计算warp双线性变换的工作空间
23.2. ippiWarpBilinear_:warp双线性变换
23.2. ippiWarpBilinearBack_:warp双线性反变换
24.1. ippiWarpBilinearQuadGetBufferSize:计算工作空间
24.2. ippiWarpBilinearQuad_:双线性变换
25. ippiMirror_:镜像变换
26. ippiRemap_:寻找坐标的影射
第十三章 其他图像变换
1.1. ippiThresholdAdaptiveBoxGetBufferSize:计算用块的方法进行自适应阈值处理的工作空间大小
1.2. ippiThresholdAdaptiveBox_8u_C1R:box方法的自适应阈值处理
2.1. ippiThresholdAdaptiveGaussGetBufferSize:计算用gauss的方法进行自适应阈值处理的工作空间大小
2.2. ippiThresholdAdaptiveGaussInit:gauss方法的自适应阈值初始化
2.3. ippiThresholdAdaptiveGauss_8u_C1R:gauss方法的自适应阈值
第十四章 小波变换
1.1. ippiWTFwdGetSize_32f:为小波变换计算工作空间大小
1.2. ippiWTFwdInit_32f_C1R:小波变换初始化
1.3. ippiWTFwd_32f_C1R:一阶小波变换
2.1. ippiWTInvGetSize_32f:为反小波变换计算工作空间
2.2. ippiWTInvInit_32f_C1R:小波逆变换初始化
2.3. ippiWTInvInit_32f_C1R:小波逆变换
第十五章 计算机视觉
1.1. ippiFastNGetSize:FastN角点检测计算spec大小
1.2. ippiFastNGetBufferSize:FastN角点检测计算工作空间
1.3. ippiFastNInit:FastN角点检测初始化
1.4. ippiFastN_8u_C1R:FastN角点检测
2. ippiFastN2DToVec_8u:将角点图像转换为数组
3.1. ippiHarrisCornerGetBufferSize:Harris角点检测计算工作空间
3.2. ippiHarrisCorner_8u32f_C1R:Harris角点检测
4.1. ippiCannyBorderGetSize:Canny边缘算子工作空间计算,用户定义边界类型
4.2. ippiCannyBorder_8u_C1R:Canny边缘算子,用户定义边界类型
5.1.ippiCannyGetSize:Canny边缘算子工作空间计算
5.2. ippiCanny_16s8u_C1R:Canny边缘算子
6.1. ippiEigenValsVecsGetBufferSize_32f_C1R:为6.2的函数计算工作空间
6.2. ippiEigenValsVecsBorder_8u32f_C1R:为图像角点检测计算特征值和特征向量,自定义边界
6.2. ippiEigenValsVecs_8u32f_C1R:为图像角点检测计算特征值和特征向量
7.1. ippiMinEigenValGetBufferSize_32f_C1R:为7.2计算工作空间大小
7.2. ippiMinEigenValBorder_8u32f_C1R:为图像角点检测计算最小特征值和特征向量,自定义边界
7.2. ippiMinEigenVal_8u32f_C1:为图像角点检测计算最小特征值和特征向量
8.1. ippiHOGGetSize:计算HOG结构大小
8.2. ippiHOGInit:HOG初始化
8.3. ippiHOGGetBufferSize:HOG计算工作空间大小
8.4. ippiHOGGetDescriptorSize:计算HOG描述子的大小
8.5. ippiHOG_:计算HOG描述子
9.1. ippiHoughLineGetSize_8u_C1R:Hough变换检测直线的工作空间大小的计算
9.2. ippiHoughLine_8u32f_C1R:Hough变换检测直线
9.2. ippiHoughLine_Region_8u32f_C1R:Hough变换检测直线,有固定的参数设置
10.1. ippiHoughProbLineGetSize_8u_C1R:概率Hough变换检测直线的工作空间计算
10.2. ippiHoughProbLineInit_8u32f_C1R:概率Hough变换检测直线初始化
10.3. ippiHoughProbLine_8u32f_C1R:概率Hough变换检测直线
11.1. ippiLineSuppressionGetBufferSize:为线性抑制算法计算工作空间
11.2. ippiLineSuppression_8u_C1R:线性抑制算法
12. ippiDistanceTransform_3x3_:距离转换函数
13. ippiGetDistanceTransformMask_:获取距离转换模板
14.1. ippiFastMarchingGetBufferSize_8u32f_C1R:快速匹配函数工作空间的计算
14.2. ippiFastMarching_8u32f_C1R:快速匹配函数
15.1. ippiTrueDistanceTransformGetBufferSize_8u32f_C1R:欧式距离变换工作空间计算
15.2. ippiTrueDistanceTransform_8u32f_C1R:欧式距离变换
16. ippiGradientColorToGray_:将彩色梯度图像转换为灰度图像
17.1. ippiGradientVectorGetBufferSize:为计算梯度向量计算工作空间
17.2. ippiGradientVectorPrewitt_:Prewitt算子梯度
17.2. ippiGradientVectorScharr_:Scharr算子梯度
17.2. ippiGradientVectorSobel_:Sobel算子梯度
18.1. ippiFloodFillGetSize:洪荒算法获取工作空间大小
18.1. ippiFloodFillGetSize_Grad:梯度洪荒算法工作空间计算
18.2. ippiFloodFill_4Con_:4邻域洪荒算法
18.2. ippiFloodFill_Grad4Con_:4邻域梯度洪荒算法
18.2. ippiFloodFill_Range4Con_:4邻域特殊范围洪荒算法
19.1. ippiFGMMGetBufferSize_8u_C3R:计算FGMM算法的工作空间
19.2. ippiFGMMInit_8u_C3R:FGMM算法初始化
19.3. ippiFGMMForeground_8u_C3R:FGMM算法(前景)
19.3. ippiFGMMBackground_8u_C3R:FGMM算法(背景)
20. ippiUpdateMotionHistory_:更新运动历史
21.1. ippiOpticalFlowPyrLKGetSize:光流法工作空间计算
21.2. ippiOpticalFlowPyrLKInit_:光流法初始化
21.3. ippiOpticalFlowPyrLK_:光流法
22.1. ippiPyramidGetSize:金字塔计算工作空间
22.2. ippiPyramidGetSize:金字塔初始化
22.3. ippiGetPyramidDownROI:金字塔分层
22.3. ippiGetPyramidUpROI:金子塔分层
23.1. ippiPyramidLayerDownGetSize_8u_C1R:计算向下分层金字塔的工作空间
23.2. ippiPyramidLayerDownInit_8u_C1R:向下分层金字塔的初始化
23.3. ippiPyramidLayerDown_:向下分层金字塔
24.1. ippiPyramidLayerUpGetSize_8u_C1R:计算向上分层金字塔的工作空间
24.2. ippiPyramidLayerUpInit_8u_C1R:向上分层金字塔的初始化
24.3. ippiPyramidLayerUp_:向上分层金字塔
25.1. ippiInpaintGetSize:图像修补工作空间计算
25.2. ippiInpaintInit_8u_C1R:图像修补初始化
25.3. ippiInpaint_8u_C1R:图像修补
26.1. ippiLabelMarkersGetBufferSize_8u_C1R:计算标记的工作空间
26.2. ippiLabelMarkers_8u_C1IR:用不同的值标记
27.1. ippiMarkSpecklesGetBufferSize:斑点标记工作空间计算
27.2. ippiMarkSpeckles_:斑点标记
28.1. ippiSegmentWatershedGetBufferSize_8u_C1R:水印分割工作空间计算
28.2. ippiSegmentWatershed_8u_C1IR:水印分割
29.1. ippiSegmentGradientGetBufferSize_8u_C1R:梯度分割工作空间计算
29.2. ippiSegmentGradient_8u_C1IR:梯度分割
30. ippiBoundSegments_8u_C1IR:标记分割边界
31.1. ippiHaarClassifierGetSize:Haar分类器工作空间计算
31.2. ippiHaarClassifierInit_32f:Haar分类器初始化
31.3. ippiGetHaarClassifierSize_32f:返回Harr分类器的尺寸
31.4. ippiTiltedHaarClassifierInit_32f:初始化Harr分类器的结构
31.5. ippiTiltHaarFeatures_32f:修改Harr分类器
31.6. ippiApplyHaarClassifier_32f_C1R:Harr分类器
31.6. ippiApplyMixedHaarClassifier_32f_C1R:混合Harr分类器
32. ippiLBPImageMode3x3_:计算图像的LBP图像
33. ippiLBPImageHorizCorr_:计算两幅LBP图像的相关性
34.1. ippiUndistortGetSize:计算34.2的工作空间大小
34.2. ippiUndistortRadial_:校正射线畸变
35. ippiCreateMapCameraUndistort_32f_C1R:建立校正图像坐标的查找表
第十六章 三维数据处理函数
1.1. ipprFilterGetBufSize:计算滤波器的工作空间大小
1.2. ipprFilter_16s_C1PV:用立方体模板进行滤波
2.1. ipprResizeGetBufSize:图像缩放工作空间计算
2.2. ipprGetResizeCuboid:获取立方体模板的坐标
2.3. ipprResize_8u_C1V:三维滤波
3. ipprRemap_8u_C1PV:通过查找坐标影射到目标图像
4.1. ipprWarpAffineGetBufSize:计算放射变换的工作空间
4.2. ipprWarpAffine_8u_C1PV:三维放射变换
附录略!
欢迎关注微信公众号“智能算法”!