图像处理和图像识别中常用的OpenCV函数
Posted xkiwnchwhd
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图像处理和图像识别中常用的OpenCV函数相关的知识,希望对你有一定的参考价值。
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:直方图均衡化;
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:显示查找表,实际上就是一张像素灰度值的映射表,它将实际采样到的像素灰度值经过一定的变换如阈值、反转、二值化、对比度调整、线性变换等,变成了另外一个与之对应的灰度值;
325. class FeatureDetector:abstract base class for 2D image feature detectors;
326. class FastFeatureDetector:wrapping class for feature detection using the FAST() method;
327. class SURF(SurfFeatureDetector、SurfDescriptorExtractor):extracting Speeded Up RobustFeatures from an image;
328. class SIFT(SiftFeatureDetector):extracting keypoints and computingdescriptors using the Scale Invariant Feature Transform(SIFT) algorithm;
329.cvExtractSURF:detects keypoints andcomputes SURF descriptors for them;
再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow
以上是关于图像处理和图像识别中常用的OpenCV函数的主要内容,如果未能解决你的问题,请参考以下文章