图像处理和图像识别中常用的OpenCV函数

Posted chenying66

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图像处理和图像识别中常用的OpenCV函数相关的知识,希望对你有一定的参考价值。

跟着大佬学习OpenCV,将总结转载,以便后续的查找
下述为OpenCV2的接口

  1. cvLoadImage:将图像文件加载至内存;

  2. cvNamedWindow:在屏幕上创建一个窗口;

  3. cvDestroyWindow:销毁显示图像文件的窗口;

  4. cvDestroyAllWindows:销毁显示图像文件的所有窗口;

  5. cvShowImage:在一个已创建好的窗口中显示图像;

  6. cvWaitKey:使程序暂停,等待用户触发一个按键操作;

  7. cvReleaseImage:释放图像文件所分配的内存;

  8. cvCreateFileCapture:通过参数设置确定要读入的AVI文件;

  9. cvQueryFrame:用来将下一帧视频文件载入内存;

  10. cvReleaseCapture:释放CvCapture结构开辟的内存空间;

  11. cvCreateTrackbar:创建一个滚动条;

  12. cvSetCaptureProperty:设置CvCapture对象的各种属性;

  13. cvGetCaptureProperty:查询CvCapture对象的各种属性;

  14. cvGetSize:当前图像结构的大小;

  15. cvSmooth:对图像进行平滑处理;

  16. cvPyrDown:图像金字塔,降采样,图像缩小为原来四分之一;

  17. cvPyrUp:图像金字塔,将现有的图像在每个维度上都放大两倍;

  18. cvResize:放大或缩小图像;

  19. cvCreateCameraCapture:从摄像设备中读入数据;

  20. cvCreateVideoWriter:创建一个写入设备以便逐帧将视频流写入视频文件;

  21. cvWriteFrame:逐帧将视频流写入文件;

  22. cvReleaseVideoWriter:释放CvVideoWriter结构开辟的内存空间;

  23. CV_MAT_ELEM:从矩阵中得到一个元素;

  24. cvAbs:计算数组中所有元素的绝对值;

  25. cvAbsDiff:计算两个数组差值的绝对值;

  26. cvAbsDiffS:计算数组和标量差值的绝对值;

  27. cvAdd:两个数组的元素级的加运算;

  28. cvAddS:一个数组和一个标量的元素级的相加运算;

  29. cvAddWeighted:两个数组的元素级的加权相加运算(alpha运算);

  30. cvScaleAdd:计算一个数组缩放后与另一个数组的和;

  31. cvAvg:计算数组中所有元素的平均值;

  32. cvAvgSdv:计算数组中所有元素的绝对值和标准差;

  33. cvCalcCovarMatrix:计算一组n维空间向量的协方差;

  34. cvCmp:对两个数组中的所有元素运用设置的比较操作;

  35. cvCmpS:对数组和标量运用设置的比较操作;

  36. cvConvertScale(cvConvert):用可选的缩放值转换数组元素类型;

  37. cvCopy:把数组中的值复制到另一个数组中;

  38. cvCountNonZero:计算数组中非0值的个数;

  39. cvCrossProduct:计算两个三维向量的向量积(叉积);

  40. cvCvtColor:将数组的通道从一个颜色空间转换另外一个颜色空间;

  41. cvDet:计算方阵的行列式;

  42. cvDotProduct:计算两个向量的点积;

  43. cvEigenVV:计算方阵的特征值和特征向量;

  44. cvFlip:围绕选定轴翻转;

  45. cvGEMM:矩阵乘法;

  46. cvGetCol:从一个数组的列中复制元素;

  47. cvGetCols:从数据的相邻的多列中复制元素;

  48. cvGetDiag:复制数组中对角线上的所有元素;

  49. cvGetDims:返回数组的维数;

  50. cvGetDimSize:返回一个数组的所有维的大小;

  51. cvGetRow:从一个数组的行中复制元素值;

  52. cvGetRows:从一个数组的多个相邻的行中复制元素值;

  53. cvGetSize:得到二维的数组的尺寸,以CvSize返回;

  54. cvGetSubRect:从一个数组的子区域复制元素值;

  55. cvInRange:检查一个数组的元素是否在另外两个数组中的值的范围内;

  56. cvInRangeS:检查一个数组的元素的值是否在另外两个标量的范围内;

  57. cvInvert:求矩阵的逆;

  58. cvMahalonobis:计算两个向量间的马氏距离;

  59. cvMax:在两个数组中进行元素级的取最大值操作;

  60. cvMaxS:在一个数组和一个标量中进行元素级的取最大值操作;

  61. cvMin:在两个数组中进行元素级的取最小值操作;

  62. cvMinS:在一个数组和一个标量中进行元素级的取最小值操作;

  63. cvMinMaxLoc:寻找数组中的最大最小值;

  64. cvMul:计算两个数组的元素级的乘积(点乘);

  65. cvDiv:用另外一个数组对一个数组进行元素级的除法运算;

  66. cvNormalize:将数组中元素进行归一化;

  67. cvReduce:通过给定的操作符将二维数组简为向量;

  68. cvRepeat:以平铺的方式进行数组复制;

  69. cvSet:用给定值初始化数组;

  70. cvSetZero:将数组中所有元素初始化为0;

  71. cvSetIdentity:将数组中对角线上的元素设为1,其他置0;

  72. cvSolve:求出线性方程组的解;

  73. cvSplit:将多通道数组分割成多个单通道数组;

  74. cvMerge:把几个单通道图像合并为一个多通道图像;

  75. cvSub:两个数组元素级的相减;

  76. cvSubS:元素级的从数组中减去标量;

  77. cvSubRS:元素级的从标量中减去数组;

  78. cvSum:对数组中的所有元素求和;

  79. cvSVD:二维矩阵的奇异值分解;

  80. cvSVBkSb:奇异值回代计算;

  81. cvTrace:计算矩阵迹;

  82. cvTranspose:矩阵的转置运算;

  83. cvNot:按位对数组中的每一个元素求反;

  84. cvOr:对两个数组进行按位或操作;

  85. cvOrs:在数组与标量之间进行按位或操作;

  86. cvXor:对两个数组进行按位异或操作;

  87. cvXorS:在数组和标量之间进行按位异或操作;

  88. cvAnd:对两个数组进行按位与操作;

  89. cvAndS:在数组和标量之间进行按位与操作;

  90. cvZero:将所有数组中的元素置为0;

  91. cvConvertScaleAbs:计算可选的缩放值的绝对值之后再转换数组元素的类型;

  92. cvNorm:计算数组的绝对范数, 绝对差分范数或者相对差分范数;

  93. cvScale:是cvConvertScale的一个宏,可以用来重新调整数组的内容,并且可以将参数从一种数据类型转换为另一种;

  94. cvT:是函数cvTranspose的缩写;

  95. cvLine:画直线;

  96. cvRectangle:画矩形;

  97. cvCircle:画圆;

  98. cvEllipse:画椭圆;

  99. cvEllipseBox:使用外接矩形描述椭圆;

100.cvFillPoly、cvFillConvexPoly、cvPolyLine:画多边形;

101.cvPutText:在图像上输出一些文本;

102.cvGetTextSize:计算文本串的宽和高;

103.cvInitFont:采用一组参数配置一些用于屏幕输出的基本个特定字体;

104.cvSave:矩阵保存;

105.cvLoad:矩阵读取;

106.cvOpenFileStorage:为读/写打开存储文件;

107.cvReleaseFileStorage:释放存储的数据;

108.cvStartWriteStruct:开始写入新的数据结构;

109.cvEndWriteStruct:结束写入数据结构;

110.cvWriteInt:写入整数型;

111.cvWriteReal:写入浮点型;

112.cvWriteString:写入字符型;

113.cvWriteComment:写一个XML或YAML的注释字串;

114.cvWrite:写一个对象;

115.cvWriteRawData:写入多个数值;

116.cvWriteFileNode:将文件节点写入另一个文件存储器;

117.cvGetRootFileNode:获取存储器最顶层的节点;

118.cvGetFileNodeByName:在映图或存储器中找到相应节点;

119.cvGetHashedKey:为名称返回一个惟一的指针;

120.cvGetFileNode:在映图或文件存储器中找到节点;

121.cvGetFileNodeName:返回文件的节点名;

122.cvReadInt:读取一个无名称的整数型;

123.cvReadIntByName:读取一个有名称的整数型;

124.cvReadReal:读取一个无名称的浮点型;

125.cvReadRealByName:读取一个有名称的浮点型;

126.cvReadString:从文件节点中寻找字符串;

127.cvReadStringByName:找到一个有名称的文件节点并返回它;

128.cvRead:将对象解码并返回它的指针;

129.cvReadByName:找到对象并解码;

130.cvReadRawData:读取多个数值;

131.cvStartReadRawData:初始化文件节点序列的读取;

132.cvReadRawDataSlice:读取文件节点的内容;

133.cvGetModuleInfo:检查IPP库是否已经正常安装并且检验运行是否正常;

134.cvResizeWindow:用来调整窗口的大小;

135.cvSaveImage:保存图像;

136.cvMoveWindow:将窗口移动到其左上角为x,y的位置;

137.cvDestroyAllWindow:用来关闭所有窗口并释放窗口相关的内存空间;

138.cvGetTrackbarPos:读取滑动条的值;

139.cvSetTrackbarPos:设置滑动条的值;

140.cvGrabFrame:快速的从摄像头或视频文件中抓取帧,被抓取的帧在内部被存储;

141.cvRetrieveFrame:取回由函数cvGrabFrame抓取的图像,返回的图像不可以被用户释放或者修改;

142.cvConvertImage:用于在常用的不同图像格式之间转换;

143.cvErode:形态学腐蚀;

144.cvDilate:形态学膨胀;

145.cvMorphologyEx:更通用的形态学函数;

146.cvCreateStructuringElementEx:创建自定义的IplConvKernel核,应用在相应形态学操作中;

147.cvReleaseStructuringElement:释放由自定义创建的IplConvKernel核;

148.cvFloodFill:漫水填充算法,用来进一步控制哪些区域将被填充颜色;

149.cvPyrSegmentation:利用金字塔实现图像分割;

150.cvThreshold:图像阈值化;

151.cvAcc:可以将8位整数类型图像累加为浮点图像;

152.cvAdaptiveThreshold:图像自适应阈值;

153.cvFilter2D:图像卷积;

154.cvCopyMakeBorder:将特定的图像轻微变大,然后以各种方式自动填充图像边界;

155.cvCanny:Canny边缘检测;

156.cvSobel:图像边缘检测,Sobel算子;

157.cvLaplace:拉普拉斯变换、图像边缘检测;

158.cvHoughLines2:霍夫直线变换;

159.cvHoughCircles:霍夫圆变换;

160.cvWarpAffine:稠密仿射变换;

161.cvGetQuadrangleSubPix:仿射变换(提取像素四边形,使用子像素精度);

162.cvGetRectSubPix:从图像中提取像素矩形,使用子像素精度;

163.cvGetAffineTransform:仿射映射矩阵的计算;

164.cvCloneImage:将整个IplImage结构复制到新的IplImage中;

165.cv2DRotationMatrix:仿射映射矩阵的计算;

166.cvTransform:稀疏仿射变换;

167.cvWarpPerspective:密集透视变换(单应性);

168.cvGetPerspectiveTransform:计算透视映射矩阵;

169.cvPerspectiveTransform:稀疏透视变换;

170.cvCartToPolar:将数值从笛卡尔空间到极坐标(极性空间)进行映射;

171.cvPolarToCart:将数值从极性空间到笛卡尔空间进行映射;

172.cvLogPolar:对数极坐标变换;

173.cvDFT:离散傅里叶变换;

174.cvMulSpectrums:频谱乘法;

175.cvDCT:离散余弦变换;

176.cvIntegral:计算积分图像;

177.cvDistTransform:图像的距离变换;

178.cvEqualizeHist:直方图均衡化;

179.cvCreateHist:创建一新直方图;

180.cvReleaseHist:释放创建的直方图;

181.cvMakeHistHeaderForArray:根据已给出的数据创建直方图;

182.cvNormalizeHist:归一化直方图;

183.cvThreshHist:直方图阈值函数;

184.cvCalcHist:从图像中自动计算直方图;

185.cvCompareHist:用于对比两个直方图的相似度;

186.cvCalcEMD2:陆地移动距离(EMD)算法;

187.cvCalcBackProject:反向投影;

188.cvCalcBackProjectPatch:图块的方向投影;

189.cvMatchTemplate:模板匹配;

190.cvCreateMemStorage:用于创建一个内存存储器;

191.cvCreateSeq:创建序列;

192.cvSeqInvert:将序列进行逆序操作;

193.cvCvtSeqToArray:复制序列的全部或部分到一个连续内存数组中;

194.cvFindContours:从二值图像中寻找轮廓;

195.cvDrawContours:绘制轮廓;

196.cvApproxPoly:使用多边形逼近一个轮廓;

197.cvConvexHull2:使用Sklansky算法计算2D点集的凸外形;

198.cvPointPolygonTest:点在多边形中的位置(内部、外部、多边形边上);

199.cvContourPerimeter:轮廓长度;

200.cvContoursMoments:计算轮廓矩;

201.cvMoments:计算Hu不变矩;

202.cvMatchShapes:使用矩进行匹配;

203.cvInitLineIterator:对任意直线上的像素进行采样;

204.cvSampleLine:对直线采样;

205.cvAbsDiff:帧差;

206.cvWatershed:分水岭算法;

207.cvInpaint:修补图像;

208.cvGoodFeaturesToTrack:寻找角点;

209.cvCornerHarris:Harris角点检测;

210.cvFindCornerSubPix:用于发现亚像素精度的角点位置;

211.cvMeanShift:mean-shift跟踪算法;

212.cvCamShift:camshift跟踪算法;

213.cvCreateConDensation:condensation算法,分配condensation滤波器结构;

214.cvReleaseConDensation:condensation算法,释放condensation滤波器结构;

215.cvConDensInitSampleSet:condensation算法,初始化condensation算法中的粒子集;

216.cvConDensUpdateByTime:condensation算法,估计下个模型状态;

217.cvConvertPointsHomogenious:对齐次坐标进行转换;

218.cvFindChessboardCorners:定位棋盘角点;

219.cvCalibrateCamera2:利用定标来计算摄像机的内参数和外参数;

220.cvInitUndistortMap:计算形变和非行变图像的对应;

221.cvInitUndistortRectifyMap:computes the undistortion and rectification transformation map;

222.cvRemap:图像重映射,校正标定图像,图像插值;

223.cvFindFundamentalMat:由两幅图像中对应点计算出基本矩阵;

224.cvComputeCorrespondEpilines:为一幅图像中的点计算其在另一幅图像中对应的对极线;

225.cvDrawChessboardCorners:绘制检测到的棋盘角点;

226.cvFindHomography:计算单应性矩阵;

227.cvRodrigues2:罗德里格斯变换;

228.cvFitLine:直线拟合算法;

229.cvCalcCovarMatrix:计算协方差矩阵;

230.cvInvert:计算协方差矩阵的逆矩阵;

231.cvMahalanobis:计算Mahalanobis距离;

232.cvKMeans2:K均值;

233.cvCloneMat:根据一个已有的矩阵创建一个新矩阵;

234.cvPreCornerDetect:计算用于角点检测的特征图;

235.cvGetImage:CvMat图像数据格式转换成IplImage图像数据格式;

236.cvMatMul:两矩阵相乘;

237.cvMatMulAdd:dst = src1 * src2 + src3;

238.cvRound:返回和参数最接近的整数值;

239.cvFloor:返回不大于参数的最大整数值;

240.cvCeil:返回不小于参数的最小整数值;

241.cvCreateImage:创建图像;

242.cvSetMouseCallback:用鼠标获取确定窗口上的矩形;

243.cvContourArea:计算整个或部分轮廓的面积;

244.cvArcLength:计算轮廓周长或曲线长度;

245.cvBoundingRect:计算点集的最外面矩形边界(获取轮廓的外接矩形);

246.cvSeqRemove:删除序列中指定位置的元素(轮廓);

247.cvGetTickCount:返回64位长整数的时间数据;

248.cvGetTickFrequency:返回系统时钟频率;

249.cvRNG:随机生成一个64位随机数(uint64);

250.cvRandInt:返回均匀分布32位的随机数(uint32);

251.cvRandReal:返回均匀分布0~1之间的随机小数;

252.cvRandArr:用随机数填充数组并更新RNG状态;

253.cvRandInit:初始化CvRandState数据结构,可以选定随机分布的种类,并给定它种子;

254.cvInitMatHeader:初始化矩阵头,不分配存储空间;

255.cvTermCriteria:迭代算法终止准则;

256.CvSVMParams:SVM训练参数,该结构需要初始化,并传递给CvSVM训练函数;

257.CvSVM::train:训练SVM(支持向量机);

258.CvSVM::predict:预测一个新样本的响应值,在分类问题中,这个函数返回类别编号,在回归问题中,返回函数值;

259.cvSet2D:修改指定的数组;

260.CvSVM::get_support_vector_count:获得支持向量的个数;

261.CvSVM::get_support_vector:获得对应索引编号的支持向量;

262.CvSVM::save:将SVM训练完的数据保存到指定的文件中(save来源于cvStatModel为ML库的通用类);

263.CvSVM::load:将指定的文件装载到SVM指定的对象中;

264.cvCreateBGCodeBookModel:codebook方法中,初始化;

265.cvBGCodeBookUpdate:codebook方法中,更新背景模型;

266.cvBGCodeBookClearStale:codebook方法中,清除消极的codebook;

267.cvBGCodeBookDiff:codebook方法中,背景减除;

268.cvReleaseBGCodeBookModel:codebook方法中,释放资源;

269.cvSegmentFGMask:对前景做连通域分割;

270.cvRunningAvg:更新running average,可用于运动目标检测中更新背景;

271.cvCalcOpticalFlowHS:使用Horn&Schunck算法计算两幅图像的光流;

272.cvCalcOpticalFlowLK:使用Lucas&Kanade算法计算两幅图像的光流(非金字塔);

273.cvCalcOpticalFlowPyrLK:使用金字塔Lucas&Kanade方法计算一个稀疏特征集的光流;

274.cvCalcOpticalFlowBM:用块匹配方法计算两幅图像的光流;

275.cvUpdateMotionHistory:运动模板中,去掉影像以更新运动历史图像;

276.cvRunningAvg:更新running average滑动平均;

277.cvCalcMotionGradient:运动模板中,计算运动历史图像的梯度方向;

278.cvSegmentMotion:运动模板中,将整个运动分割为独立的运动部分;

279.cvCalcGlobalOrientation:运动模板中,计算某些选择区域的全局运动方向;

280.cvGetMinMaxHistValue:直方图中找到最小值和最大值;

281.cvMinAreaRect2:寻找最小面积的外接矩形;

282.cvMinEnclosingCircle:计算轮廓的最小外接圆;

283.cvFitEllipse2:获取轮廓的椭圆边界框;

284.cvMaxRect:寻找包含两个输入矩形的具有最小面积的矩形边界;

285.cvBoxPoints:寻找盒子的顶点;

286.cvCreateKalman:Kalman中,分配Kalman滤波器结构;

287.cvReleaseKalman:Kalman中,释放Kalman滤波器结构;

288.cvKalmanPredict:Kalman中,估计后来的模型状态;

289.cvKalmanCorrect:Kalman中,调节模型状态;

290.cvLoadHaarClassifierCascade:CvHaarClassifierCascade中,从文件中装载训练好的级联分类器或者从OpenCV中嵌入的分类器数据库中导入;

291.cvHaarDetectObjects:CvHaarClassifierCascade中,检测图像中的目标;

292.cvSetImageForHaarClassifierCascade:CvHaarClassifierCascade中,为隐藏的cascade(hidden cascade)指定图像;

293.cvReleaseHaarClassifierCascade:CvHaarClassifierCascade中,释放haar classifier cascade;

294.cvRunHaarClassifierCascade:CvHaarClassifierCascade中,在给定位置的图像中运行cascade of boosted classifier;

295.CvAdaptiveSkinDetector::process:皮肤检测;

296.cvCalcEigenObjects:计算传入影像阵列的eigen vector、eigen value、image average(影像平均值);

297.cvEigenDecomposite:透过eigen vector和原始影像集来解析每张图片降维后对应的系数coefficients;

298.cvEigenProjection:投影图片在特征空间;

299.cvAlloc:分配内存;

300.cvFree:释放内存(cvAlloc与cvFree应匹配出现);

301.CvANN_MLP::create:constructs MLP(multi-layer perceptrons) withthe specified topology;

302.CvANN_MLP::train:trains/updates MLP;

303.CvANN_MLP::predict:predicts responses for input samples;

304.CvANN_MLP::get_layer_count:returns the number fo layers in the MLP;

305.CvANN_MLP::get_layer_size:returns numbers of neurons in each layer ofthe MLP;

306.CvANN_MLP::get_weights:returns neurons weights of the particularlayer;

307.CvKNearest::CvKNearest:default and training constructors;

308.CvKNearest::train:trains the model;

309.CvKNearest::find_nearest:finds the neighbors and predicts responses forinput vectors;

310.CvKNearest::get_max_k:returns the number of maximum neighbors thatmay be passed to the method CvKNearest::find_nearest();

311.CvKNearest::get_var_count:returns the number of used features(variablescount);

312.CvKNearest::get_sample_count:returns the total number of train samples;

313.CvKNearest::is_regression:returns type of the problem(true forregression and false for classification);

314.cvGetSeqElem:returns a pointer to a sequenceelement according to its index;

315.cvGetReal2D:return a specific element ofsingle-channel 2D array;

316.cvSqrt:计算平方根;

317.cvPow:对数组内每个元素求幂;

318.cvCbrt:计算立方根;

319.cvExp:计算数组元素的指数幂;

320.cvLog:计算每个数组元素的绝对值的自然对数;

321.cvSetImageROI:设置感兴趣区域;

322.cvResetImageROI:释放感兴趣区域;

323.cvSetImageCOI:设置感兴趣通道;

324.cvLUT:显示查找表,实际上就是一张像素灰度值的映射表,它将实际采样到的像素灰度值经过一定的变换如阈值、反转、二值化、对比度调整、线性变换等,变成了另外一个与之对应的灰度值;

  1. class FeatureDetector:abstract base class for 2D image feature detectors;

  2. class FastFeatureDetector:wrapping class for feature detection using the FAST() method;

  3. class SURF(SurfFeatureDetector、SurfDescriptorExtractor):extracting Speeded Up RobustFeatures from an image;

  4. class SIFT(SiftFeatureDetector):extracting keypoints and computingdescriptors using the Scale Invariant Feature Transform(SIFT) algorithm;

329.cvExtractSURF:detects keypoints andcomputes SURF descriptors for them;
————————————————
版权声明:本文为CSDN博主「fengbingchun」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/fengbingchun/article/details/5816253

以上是关于图像处理和图像识别中常用的OpenCV函数的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV 函数学习14-图像与标量相加(cv2.add)

opencv常用函数

python中音频图像识别和网页相关的库合集!

基于opencv的纸张表面质量检测算法中

opencv 利用cv.matchShapes()函数实现图像识别技术

opencv图像匹配常用特征点