EmguCV 常用函数功能说明「建议收藏」

2022-07-23 16:25:21 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。AbsDiff,计算两个数组之间的绝对差。 dst(I)c = abs(src1(I)c-src2(I)c)。所有数组必须具有相同的数据类型和相同的大小(或ROI大小)。 累加,将整个图像或其所选区域添加到累加器和。 累积产品,将2张图像或其选定区域的产品添加到累加器中。 AccumulateSquare,将输入src或其选定的区域,增加到功率2,添加到累加器sqsum。 累积权重,计算输入src和累加器的加权和,以使acc成为帧序列的运行平均值:acc(x,y)=(1-alpha)* acc(x,y) alpha * image(x,y )如果mask(x,y)!= 0,其中alpha调节更新速度(累加器对于先前帧的多少速度).. 自适应阈值,将灰度图像转换为二进制图像。每个像素单独计算的阈值。对于方法CV_ADAPTIVE_THRESH_MEAN_C,它是blockSize x blockSize像素邻域的平均值,由param1减去。对于方法CV_ADAPTIVE_THRESH_GAUSSIAN_C,它是blockSize x blockSize像素邻域的加权和(高斯),由param1减去。 添加,将一个数组添加到另一个数组:dst(I)= src1(I) src2(I)if mask(I)!= 0所有数组必须具有相同的类型,除了掩码和大小(或ROI)尺寸)。 AddWeighted,计算的两个数组的加权和如下:dst(I)= src1(I)* alpha src2(I)* beta gamma所有的数组必须具有相同的类型和相同的大小(或ROI大小)。 ApplyColorMap,将颜色映射应用于图像。 ApproxPolyDP,近似具有指定精度的多边形曲线。 ArcLength,计算轮廓周长或曲线长度。 ArrowedLine,绘制从第一个点指向第二个点的箭头段。 BilateralFilter,将双边滤镜应用于图像。 BitwiseAnd,并计算两个数组的每元素的逐位逻辑连接:dst(I)= src1(I)&src2(I)if mask(I)!= 0在浮点数组的情况下,使用它们的位表示为了操作。所有阵列必须具有相同的类型,除了掩码和大小相同。 BitwiseNot,反转每个数组元素的每一位:。 BitwiseOr,计算两个数组的每元素逐位分离:dst(I)= src1(I)| src2(I)在浮点数组的情况下,它们的位表示用于操作。所有阵列必须具有相同的类型,除了掩码和大小相同。 BitwiseXor,计算两个数组的每元素的逐位逻辑连接:dst(I)= src1(I)^ src2(I)if mask(I)!= 0在浮点数组的情况下,使用它们的位表示为了操作。所有阵列必须具有相同的类型,除了掩码和大小相同。 模糊,使用归一化的盒式过滤器模糊图像。 BoundingRectangle,返回2d点集的右上角矩形。 BoxFilter,使用框过滤器模糊图像 BoxPoints(RotatedRect),计算输入2d框的顶点。 BoxPoints(RotatedRect,IOutputArray),计算输入2d框的顶点。 CalcBackProject,计算直方图的反投影。 CalcCovar矩阵,计算一组向量的协方差矩阵。 CalcGlobalOrientation,计算所选区域中的一般运动方向,并返回0到360之间的角度。首先,函数构建方向直方图,并将基本方向作为直方图最大值的坐标。之后,该函数计算相对于基本方向的移位,作为所有方向向量的加权和:运动越近,权重越大。得到的角度是基本方向和偏移的圆和。 CalcHist,计算一组数组的直方图 CalcMotionGradient,计算mhi的导数Dx和Dy,然后计算梯度取向为:方向(x,y)= arctan(Dy(x,y)/ Dx(x,y)),其中Dx(x,y)考虑Dy(x,y)“符号(如cvCartToPolar函数)。填写面罩后,指出方向有效(见delta1和delta2说明).. CalcOpticalFlowFarneback(IInputArray,IInputArray,IInputOutputArray,Double,Int32,Int32,Int32,Int32,Double,OpticalflowFarnebackFlag),使用Gunnar Farneback算法计算密集的光流。 CalcOpticalFlowFarneback(Image <Gray,Byte>,Image <Gray,Byte>,Image <Gray,Single>,Image <Gray,Single>,Double,Int32,Int32,Int32,Int32,Double,OpticalflowFarnebackFlag) Gunnar Farneback的算法。 CalcOpticalFlowPyrLK(IInputArray,IInputArray,IInputArray,IInputOutputArray,IOutputArray,IOutputArray,Size,Int32,MCvTermCriteria,LKFlowFlag,Double),在金字塔([Bouguet00])中实现Lucas-Kanade光流的稀疏迭代版本。它计算当前视频帧上的特征点的坐标,给出其前一帧的坐标。该函数查找具有子像素精度的坐标。 CalcOpticalFlowPyrLK(IInputArray,IInputArray,PointF [],Size,Int32,MCvTermCriteria,PointF [],Byte [],Single [],LKFlowFlag,Double),使用金字塔中的迭代Lucas-Kanade方法计算稀疏特征集的光流。 CalibrateCamera(IInputArray,IInputArray,Size,IInputOutputArray,IInputOutputArray,IOutputArray,IOutputArray,CalibType,MCvTermCriteria),估计每个视图的内在摄像机参数和外在参数。 CalibrateCamera(MCvPoint3D32f [] [],PointF [] [],Size,IInputOutputArray,IInputOutputArray,CalibType,MCvTermCriteria,Mat [],Mat []),估计每个视图的内在摄像机参数和外在参数。 CalibrationMatrixValues,使用计算的相机校准矩阵计算各种有用的相机(传感器/镜头)特性,像素中的图像帧分辨率和物理光圈大小。 CamShift,实现CAMSHIFT对象跟踪算法([Bradski98])。首先,它使用cvMeanShift找到一个对象中心,然后计算对象的大小和方向。 Canny,找到输入图像上的边缘,并使用Canny算法在输出图像边缘中标记它们。最小的threshold1和threshold2用于边缘链接,最大 – 找到强边缘的初始段。 CartToPolar,计算每个2d向量(x(I),y(I))的大小,角度或两者:幅度(I)= sqrt(x(I)2 y(I)2) = atan(y(I)/ x(I))角度以〜0.1度精度计算。对于(0,0)点,角度设置为0。 CheckLibraryLoaded,检查以确保所有非托管库都已加载。 CheckRange,检查每个数组元素既不是NaN也不是 – inf。这些功能还检查每个值是否在minVal和maxVal之间。在多通道阵列的情况下,每个通道被独立地处理。如果某些值超出范围,则第一个异常值的位置存储在pos中,然后函数返回false(当quiet = true时)或引发异常。 圆,绘制一个简单或圆形的圆圈,给定的中心和半径。圆形被ROI矩形裁剪 对比度有限自适应直方图均衡(CLAHE)。 ClipLine,计算完整在矩形中的线段的一部分。 ColorChange,给定一个原始的彩色图像,这个图像的两个不同颜色的版本可以无缝混合.. 比较,比较两个数组的相应元素并填充目标掩码数组:dst(I)= src1(I)op src2(I),dst(I)设置为0xff(所有“1”元素之间的关系是真实的,否则为0。所有阵列必须具有相同的类型,目的地除外,以及相同的大小(或ROI大小)。 CompareHist,比较两个直方图.. ComputeCorrespondEpilines,对于立体对的两个图像之一中的每个点,函数cvComputeCorrespondEpilines找到包含相应点(即相同3D点的投影)在另一个图像中的线的方程。每行由3个元素l = [a,b,c] ^ T的向量编码,使得:l ^ T * [x,y,1] ^ T = 0或a * x b * y c = 0从基本矩阵定义(参见cvFindFundamentalMatrix讨论),第一个图像(其中图像= 1)中的点p1的行l2可以被计算为:l2 = F * p1,第二个点中的点p2的行l1 image(which_image = 1)可以计算为:l1 = F ^ T * p2线系数被定义为一个比例。它们被归一化(a2 b2 = 1)被存储在通讯对象中。 ConnectedComponents,计算标记为布尔值图像的连接组件。 ConnectedComponentsWithStats,计算标记为布尔值图像的连接组件。 轮廓区域,计算整个轮廓或轮廓部分的面积。 ConvertMaps,将图像转换图从一个表示转换为另一个表示 ConvertPointsFromHomogeneous,将点从均匀转换为欧氏空间。 ConvertPointsToHomogeneous,将点从欧几里得转换为均匀空间。 ConvertScaleAbs,与cvCvtScale类似,但它存储转换结果的绝对值:dst(I)= abs(src(I)* scale (shift,shift,…))该函数仅支持8u(8-位无符号整数)类型,对于其他类型,该函数可以通过cvConvertScale和cvAbs函数的组合进行模拟。 ConvexHull(PointF [],Boolean),使用Sklansky算法查找2D点集的凸包。 ConvexHull(IInputArray,IOutputArray,Boolean,Boolean),函数cvConvexHull2使用Sklansky算法找到2D点集的凸包。 凸度缺陷,找出轮廓的凸度缺陷 CopyMakeBorder,将源2D数组复制到目标数组的内部,并在复制的区域周围形成指定类型的边框。当需要模拟与嵌入到特定算法实现中的边框类型不同的边框类型时,该功能非常有用。例如,OpenCV中的形态函数以及大部分其他过滤功能都在内部使用复制边框类型,而用户可能需要零边框或边框,填充1“或255”。 CornerHarris,在图像上运行哈里斯边缘检测器。与cvCornerMinEigenVal和cvCornerEigenValsAndVecs类似,对于每个像素,它在block_size x block_size邻域上计算2×2梯度共变矩阵M。然后,将det(M)-k * trace(M)^ 2存储到目的地图像中。图像中的角可以被找到为目标图像的局部最大值。 CornerSubPix,迭代找到子像素精确位置的角或径向鞍点。 CorrectMatches,改进对应点的坐标 CountNonZero,返回arr中的非零元素数:result = sumI arr(I)!= 0如果IplImage支持ROI和COI,则为 CreateHanningWindow,该函数计算二维汉宁窗系数。 CvArrToMat,将CvMat,IplImage或CvMatND转换为Mat .. cvCheckArr,检查每个数组元素既不是NaN也不是无穷大。如果设置了CV_CHECK_RANGE,它还会检查每个元素是否大于或等于minVal并小于maxVal .. cvClearND,清除(设置为零)密集数组的特定元素或删除稀疏数组的元素。如果元素不存在,该函数什么也不做。 cvConvertScale,该函数有几个不同的用途,因此有几个同义词。它将一个数组复制到另一个数组,其中可选的缩放,首先执行,和/或可选的类型转换,执行如下:dst(I)= src(I)* scale (shift,shift,…)多通道阵列被独立处理。类型转换是通过舍入和饱和来完成的,即如果缩放 转换的结果不能用目标数组元素类型的值精确地表示,那么它将被设置为实轴上最接近的可表示值。在scale = 1的情况下,shift = 0,不进行预分频。这是一个特别优化的情况,它具有适当的cvConvert同义词。如果源和目标数组类型具有相同的类型,这也是一个特殊情况,可用于缩放和移动矩阵或图像,并适用于cvScale同义词。 cvCopy,将所选元素从输入数组复制到输出数组:dst(I)= src(I)if mask(I)!= 0。如果任何传递的数组是IplImage类型,则使用其ROI和COI字段。两个数组必须具有相同的类型,相同的维数和相同的大小。该函数也可以复制稀疏数组(在这种情况下不支持掩码).. cvCreateImage,创建标题并分配数据。 cvCreateImageHeader,分配,初始化和返回结构IplImage .. cvCreateMat,为新矩阵和底层数据分配头,并返回一个指向创建的矩阵的指针。矩阵逐行存储。所有行都对齐4个字节 cvCreateSparseMat,该函数分配一个多维稀疏数组。最初,该数组不包含元素,即Get或GetReal为每个索引返回零。 cveVideoCaptureGet,检索相机或视频文件的指定属性。 cveVideoCaptureSet,设置视频捕获的指定属性。 cvGet1D,返回特定的数组元素。 cvGet2D,返回特定的数组元素。 cvGet3D,返回特定的数组元素。 cvGetCentralMoment,检索中心时刻,在图像矩定义如下:mu_ {x_order,y_order} = sum_ {x,y}(I(x,y)*(x-x_c)^ {x_order} * -y_c)^ {y_order}),其中x_c = M10 / M00,y_c = M01 / M00 – 重心的坐标。 cvGetCol,返回标题,对应于输入数组的指定列。 cvGetCols,返回与输入数组的指定col span相对应的标题。 cvGetDiag,返回与输入数组的指定对角线对应的标题。 cvGetImage,返回可以是矩阵的输入数组的图像头 – CvMat *或image – IplImage * .. cvGetImageCOI,返回图像感兴趣的通道(如果选择了所有通道,则返回0).. cvGetImageROI,返回图像感兴趣的通道(如果选择了所有通道,则返回0).. cvGetMat,返回可以是矩阵的输入数组的矩阵头–CvMat,image-IplImage或多维密集数组 – CvMatND *(后一种情况仅在allowND!= 0时允许)。在矩阵的情况下,函数只返回输入指针。在IplImage *或CvMatND *的情况下,它使用当前图像ROI的参数初始化标题结构,并返回指向此临时结构的指针。由于CvMat不支持COI,因此单独返回。 cvGetNormalizedCentralMoment,检索归一化的中心矩,在图像矩的情况下定义为:eta_ {x_order,y_order} = mu_ {x_order,y_order} / M00 ^ {(y_order x_order)/ 2 1},其中mu_ {x_order, y_order}是中心时刻。 cvGetRawData,使用关于数组数据的低级信息填写输出变量。所有输出参数都是可选的,因此某些指针可能设置为NULL。如果阵列是具有ROI集的IplImage,则返回ROI的参数。 cvGetReal1D,返回单通道数组的特定元素。如果阵列有多个通道,则会引发运行时错误。请注意,cvGet * D功能可以安全地用于单通道和多通道阵列,尽管它们有点慢.. cvGetReal2D,返回单通道数组的特定元素。如果阵列有多个通道,则会引发运行时错误。请注意,cvGet * D功能可以安全地用于单通道和多通道阵列,尽管它们有点慢.. cvGetReal3D,返回单通道数组的特定元素。如果阵列有多个通道,则会引发运行时错误。请注意,cvGet * D功能可以安全地用于单通道和多通道阵列,尽管它们有点慢.. cvGetRow,返回标题,对应于输入数组的指定行。 cvGetRows,返回与输入数组的指定行跨度相对应的标题。 cvGetSize,返回输入矩阵或图像的行数(CvSize :: height)和列数(CvSize :: width)。在图像的情况下,返回ROI的大小。 cvGetSpatialMoment,检索空间时刻,在图像矩定义如下:M_ {x_order,y_order} = sum_ {x,y}(I(x,y)* x ^ {x_order} * y ^ {y_order})其中I(x,y)是像素的强度(x,y).. cvGetSubRect,返回标题,与输入数组的指定矩形相对应。换句话说,它允许用户将输入阵列的矩形部分视为独立阵列。通过该功能考虑ROI,实际上提取ROI的子阵列。 cvInitImageHeader,初始化图像头结构,由用户传递的指针,并返回指针。 cvInitMatHeader,初始化已分配的CvMat结构。它可以用于使用OpenCV矩阵函数处理原始数据。 cvInitMatNDHeader,初始化用户分配的CvMatND结构。 cvMaxRect,查找包含两个输入矩形的最小面积矩形。 cvRange,初始化矩阵如下:arr(i,j)=(end-start)*(i * cols(arr) j)/(cols(arr)* rows(arr))。 cvReleaseImage,发布标题和图像数据.. cvReleaseImageHeader,发布标题 cvReleaseMat,减去矩阵数据引用计数器并释放矩阵头。 cvReleaseSparseMat,该函数释放稀疏数组,并在退出时清除数组指针。 cvResetImageROI,发布图像投资回报率。之后,整个图像被认为是选择.. cvReshape初始化CvMat头,使其指向与原始数组相同的数据,但具有不同的形状 – 不同的通道数,不同的行数或两者。 cvSampleLine,实现了线迭代器的应用的一个特例。该功能读取位于pt1和pt2之间的所有图像点,包括终点,并将它们存储到缓冲区中。 cvSet2D,将新值分配给数组的特定元素。 cvSetData,将用户数据分配给数组头。 cvSetImageCOI,将感兴趣的通道设置为给定值。值0表示选择所有通道,1表示选择第一个通道。如果ROI为NULL,coi!= 0,则分配ROI。 cvSetImageROI,将图像ROI设置为给定的矩形。如果ROI为NULL,并且参数rect的值不等于整个图像,则ROI被分配。 cvSetReal1D,将新值分配给单通道数组的特定元素。 cvSetReal2D,将新值分配给单通道数组的特定元素。 cvSetReal3D,将新值分配给单通道数组的特定元素。 cvSetRealND,将新值分配给单通道数组的特定元素。 CvtColor(IInputArray,IOutputArray,ColorConversion,Int32),将输入图像从一个颜色空间转换为另一个。该函数忽略IplImage头的colorModel和channelSeq字段,因此应该正确指定源图像颜色空间(包括RGB空间的通道顺序,例如BGR表示使用B0的24位格式G0 R0 B1 G1 R1 …布局,而RGB表示具有R0的24位格式G0 B0 R1 G1 B1 …布局).. CvtColor(IInputArray,IOutputArray,Type,Type)将输入图像从一个颜色空间转换为另一个颜色空间。该函数忽略IplImage头的colorModel和channelSeq字段,因此应该正确指定源图像颜色空间(包括RGB空间的通道顺序,例如BGR表示使用B0的24位格式G0 R0 B1 G1 R1 …布局,而RGB表示具有R0的24位格式G0 B0 R1 G1 B1 …布局).. Dct,执行1D或2D浮点数组的向前或反向变换。 脱色,将彩色图像转换为灰度图像。这是一个基本的数字打印工具,风格化的黑白照片渲染,以及许多单通道图像处理应用。 DefaultLoadUnmanagedModules,尝试从特定位置加载opencv模块。 DenoiseTVL1,Primal-dual算法是一种解决特殊类型的变分问题的算法(即找到最小化某些功能的函数)。由于图像去噪,特别是可以看作是变分问题,所以原始 – 双重算法可以用于执行去噪,这正是实现的。 DestroyAllWindows,销毁所有的HighGUI窗口.. DestroyWindow,以给定的名称销毁窗口。 DetailEnhance,此过滤器增强了特定图像的细节。 决定因素,返回方阵矩阵的行列式。直接方法用于小矩阵,高斯消除用于较大的矩阵。对于对称正确矩阵,也可以运行SVD,U = V = NULL,然后计算行列式作为W的对角元素的乘积。 Dft,执行1D或2D浮点数组的正向或反向变换在实际(单通道)数据的情况下,从IPL借用的压缩格式用于表示前向傅里叶变换或反傅里叶变换输入的结果转变。 稀释,使用指定的结构元素来扩展源图像,该结构元素决定了采用最大值的像素邻域的形状。该功能支持就地模式。扩展可以应用几次(迭代)次。在彩色图像的情况下,每个通道被独立地处理。 DistanceTransform,计算源图像的所有非零像素的最近零像素距离。 Divide,将一个数组除以另一个数组:dst(I)= scale * src1(I)/ src2(I),如果src1!= IntPtr.Zero; dst(I)= scale / src2(I),如果src1 == IntPtr.Zero;所有阵列必须具有相同的类型,并且具有相同的大小(或ROI大小)。 DrawChessboardCorners,绘制被检测到的各个棋盘角(如红色圆圈),以防在没有找到板(pattern_was_found = 0)的情况下,或者当找到板(pattern_was_found!= 0)时与颜色的角连接。 DrawContours,绘制轮廓轮廓或填充轮廓。 EdgePreservingFilter,Filtering是图像和视频处理的基本操作。边缘保护平滑滤波器用于许多不同的应用。 特征,计算对称矩阵的特征值和特征向量。 椭圆(IInputOutputArray,RotatedRect,MCvScalar,Int32,LineType,Int32),绘制一个简单或粗椭圆弧或填充椭圆扇区。电弧被ROI矩形夹住。分段线性逼近用于抗锯齿弧和粗弧。所有角度均以度数给出 椭圆(IInputOutputArray,Point,Size,Double,Double,Double,MCvScalar,Int32,LineType,Int32),绘制一个简单或粗椭圆弧或填充椭圆扇区。电弧被ROI矩形夹住。分段线性逼近用于抗锯齿弧和粗弧。所有角度均以度数给出 EMD,计算两个加权点配置之间的“最小工作距离”。 EqualizeHist,该算法使亮度标准化,并增加图像的对比度。 Erode,使用指定的结构化元素来绘制源图像,该结构元素确定采用最小值的像素邻域的形状:dst = erode(src,element):dst(x,y)= min((x“,y” ))src(x x“,y y”)该功能支持就地模式。侵蚀可以应用几次(迭代)次。在彩色图像的情况下,每个通道被独立处理。 ErrorStr,返回指定错误状态代码的文本描述。在未知状态的情况下,函数返回NULL指针。 EstimateAffine3D(IInputArray,IInputArray,IOutputArray,IOutputArray,Double,Double),计算两个3D点集之间的最佳仿射变换。 估计Affine3D(MCvPoint3D32f [],MCvPoint3D32f [],Matrix <Double>,Byte [],Double,Double),计算两个3D点集之间的最佳仿射变换。 EstimateRigidTransform(PointF [],PointF [],Boolean),估计2点集之间的刚性变换 EstimateRigidTransform(IInputArray,IInputArray,Boolean),估计2个图像或2个点集之间的刚体变换 Exp,计算输入数组的每个元素的指数:dst(I)= exp(src(I))最大相对误差为7e-6。目前,函数将非归一化值转换为输出的零。 ExtractChannel,从图像中提取特定通道。 FastNlMeansDenoising,使用非局部平均去噪算法执行图像去噪:http://www.ipol.im/pub/algo/bcm_non_local_means_denoising/,具有多项计算优化。噪声预计是高斯白噪声 FastNlMeansDenoisingClored,使用非局部平均值去噪算法执行图像去噪(修改为彩色图像):http://www.ipol.im/pub/algo/bcm_non_local_means_denoising/,具有多项计算优化。预计噪声为高斯白噪声。该函数将图像转换为CIELAB颜色空间,然后使用fastNlMeansDenoising函数分别使用给定的h参数去噪L和AB分量。 FillConvexPoly,填充凸多边形内部。该函数比函数cvFillPoly快得多,并且不仅可以填充凸多边形,而且可以填充任何单调多边形,即其轮廓与每个水平线(扫描线)最多相交两次的多边形。 FillPoly,填充由一个或多个多边形界定的区域。 Filter2D,对图像应用任意线性滤镜。支持就地操作。当光圈部分在图像外部时,该函数会从图像内部最近的像素内插异常值像素值。 Find4QuadCornerSubpix,查找棋盘角的子像素准确位置。 FindChessboardCorners,尝试确定输入图像是否是棋盘图案的视图,并找到内部棋盘角。 FindCirclesGrid(图像<灰色,字节>,大小,CalibCgType,Feature2D),查找圆形网格中的中心。 FindCirclesGrid(IInputArray,Size,IOutputArray,CalibCgType,Feature2D),查找圆形网格中的中心。 FindContours,从二进制图像检索轮廓并返回检索轮廓的数量。指针firstContour由函数填充。如果没有检测到轮廓(如果图像完全为黑色),它将包含指向第一最外轮廓或IntPtr.Zero的指针。使用h_next和v_next链接可以从firstContour获得其他轮廓。 cvDrawContours讨论中的示例显示了如何使用轮廓进行连接的组件检测。轮廓也可用于形状分析和对象识别 – 请参见OpenCV示例目录中的square.c函数修改源图像内容。 FindContourTree,从二进制图像中获取轮廓作为轮廓树。指针firstContour由函数填充。它被作为一种方便的方法来获取int [,]的层次结构值。该功能修改源图像内容。 FindEssentialMat,从两个图像中的对应点计算一个基本矩阵。 FindFundamentalMat,使用上述四种方法之一计算基本矩阵,如果没有找到矩阵,则返回找到的基本矩阵(1或3)和0的数量。 FindHomography(PointF [],PointF [],IOutputArray,HomographyMethod,Double,IOutputArray),查找透视变换H = || h_ij ||在源和目的地飞机之间。 FindHomography(IInputArray,IInputArray,IOutputArray,HomographyMethod,Double,IOutputArray),查找透视变换H = || hij ||在源和目的地飞机之间。 FindNonZero,查找非零像素的位置。 FitEllipse,适合围绕一组2D点的椭圆形 FitLine(IInputArray,IOutputArray,DistType,Double,Double,Double),适用于2D或3D点集。 FitLine(PointF [],PointF,PointF,DistType,Double,Double,Double),适用于2D或3D点集。 翻转,以不同的3种方式之一翻转阵列(行和列索引为0)。 FloodFill,填充连接的组件与给定的颜色.. GaussianBlur,使用高斯滤镜模糊图像 Gemm,执行广义矩阵乘法:dst = alpha * op(src1)* op(src2) beta * op(src3),其中op(X)是X或XT。 GetAffineTransform(PointF [],PointF []),计算仿射变换的矩阵,使得:(x“_i,y”_i)^ T = map_matrix(x_i,y_i,1)^ T其中dst(i)= x“_i,y”_i),src(i)=(x_i,y_i),i = 0..2 .. GetAffineTransform(IInputArray,IOutputArray),计算仿射变换的矩阵,使得:(x“_i,y”_i)^ T = map_matrix(x_i,y_i,1)^ T其中dst(i)=(x“ y“_i),src(i)=(x_i,y_i),i = 0..2 .. GetCvStructSizes,此函数在非托管代码中检索Open CV结构大小。 GetDefaultNewCameraMatrix,返回默认的新相机矩阵.. GetDepthType(Type),获取相应的opencv深度类型。 GetDepthType(DepthType),获取相应的深度类型。 GetErrMode,返回当前的错误模式。 GetErrStatus返回当前错误状态 – 使用最后一个cvSetErrStatus调用设置的值。注意,在Leaf模式下,程序在错误发生后立即终止,所以在函数调用后总是得到控制,应该调用cvSetErrMode并设置Parent或Silent错误模式。 GetModuleFormatString,获取模块格式的字符串.. GetNumThreads,返回并行化(通过OpenMP)OpenCV函数使用的当前线程数。 GetOptimalDFTSize,返回大于等于size0的最小数N,使得可以快速计算大小为N的向量的DFT。在当前实现中,对于某些p,q,r,N = 2 ^ p x 3 ^ q x 5 ^ r GetPerspectiveTransform(PointF [],PointF [])计算透视变换矩阵,使得:(t_i x“_i,t_i y”_i,t_i)^ T = map_matrix(x_i,y_i,1)^ T其中dst(i) =(x“_i,y”_i),src(i)=(x_i,y_i),i = 0..3 .. GetPerspectiveTransform(IInputArray,IInputArray)计算透视变换矩阵,使得:(t_i x“_i,t_i y”_i,t_i)^ T = map_matrix(x_i,y_i,1)T其中dst(i)=(x“ ,y“_i),src(i)=(x_i,y_i),i = 0..3 .. GetRectSubPix,从src中提取像素:dst(x,y)= src(x center.x – (width(dst)-1)* 0.5,y center.y – (height(dst)-1)* 0.5)其中使用双线性插值检索非整数坐标处的像素的值。每个通道的多通道图像被独立处理。而矩形中心必须在图像内部,整个矩形可能被部分遮挡。在这种情况下,复制边界模式用于获取超出图像边界的像素值。 GetRotationMatrix2D,计算旋转矩阵。 GetStructuringElement,返回指定尺寸和形状的构造元素。 GetTextSize,计算文本字符串的宽度和高度.. GetThreadNum,返回调用函数的线程的索引,从0到cvGetNumThreads() – 1。它是OpenMP运行时函数omp_get_thread_num()的包装器。检索到的索引可用于访问并行化代码片段内的本地线程数据。 GrabCut,用于分割的抓取算法。 HConcat,水平连接两个图像。 HoughCircles(IInputArray,HoughType,Double,Double,Double,Double,Int32,Int32),使用Hough变换在灰度图像中查找圈子。 HoughCircles(IInputArray,IOutputArray,HoughType,Double,Double,Double,Double,Int32,Int32),使用Hough变换的一些修改在灰度图像中查找圆。 HoughLines,使用标准Hough变换找到二进制图像中的行。 HoughLinesP(IInputArray,Double,Double,Int32,Double,Double),使用概率Hough变换在二进制图像中查找线段。 HoughLinesP(IInputArray,IOutputArray,Double,Double,Int32,Double,Double),使用概率Hough变换在二进制图像中查找线段。 HuMoments,计算七胡不变量。 照明变化,将适当的非线性变换应用于选择内的渐变场,然后与泊松解算器集成,对局部修改图像的表观照明。 Imdecode(Byte [],ImreadModes,Mat),解码存储在缓冲区中的图像。 Imdecode(IInputArray,ImreadModes,Mat),解码存储在缓冲区中的图像。 Imencode,编码图像并将结果存储为字节向量.. Imread,从指定的文件加载图像,并将指针返回到加载的图像。目前支持以下文件格式:Windows位图 – BMP,DIB; JPEG文件 – JPEG,JPG,JPE;便携式网络图形 – PNG;便携式图像格式 – PBM,PGM,PPM;太阳光栅 – SR,RAS; TIFF文件 – TIFF,TIF; OpenEXR HDR图像 – EXR; JPEG 2000图像 – jp2 .. Imreadmulti,imreadmulti函数将指定文件中的多页图像加载到Mat对象的向量中。 Imshow,在指定窗口中显示图像。 Imwrite,将图像保存到指定的文件。根据文件扩展名选择图像格式,请参阅cvLoadImage。使用此功能可以保存8位单通道或3通道(带“BGR”通道顺序)图像。如果格式,深度或频道顺序不同,请在保存前使用cvCvtScale和cvCvtColor进行转换,或者使用通用cvSave将图像保存为XML或YAML格式。 InitUndistortRectifyMap,此函数是cvInitUndistortMap的扩展版本。也就是说,除了镜头失真的校正之外,该功能还可以应用任意透视变换R,并且最终可以根据新的相机矩阵对图像进行缩放和移位。 插入,从区域边界附近的像素重建所选图像区域。该功能可用于从扫描的照片中清除灰尘和划痕,或从静止图像或视频中删除不需要的物体。 InRange,对输入数组的每个元素执行范围检查:dst(I)= lower(I)_0 <= src(I)_0 <= upper(I)_0对于单通道数组,dst(I)= lower I)_0 <= src(I)_0 <= upper(I)_0 u0026u0026 lower(I)_1 <= src(I)_1 <= upper(I)_1对于双通道数组等,dst(I)如果src(I)在范围内,则为0xff(全部为“1”比特),否则为0。所有阵列必须具有相同的类型,目的地除外,以及相同的大小(或ROI大小)。 InsertChannel,将特定通道插入图像。 积分,计算源图像的一个或多个积分图像使用这些积分图像,可以在恒定时间内计算图像的任意右上角或旋转矩形区域之和,平均值,标准偏差。可以对可变窗口尺寸等进行快速模糊或快速块相关。在多通道图像的情况下,每个通道的和可以独立累加。 反转,反转矩阵src1并将结果存储在src2中。 InvertAffineTransform,反转仿射变换。 IsContourConvex,该函数测试输入轮廓是否为凸面。轮廓必须简单,即没有自相交。否则,函数输出未定义。 Kmeans,实现k-means算法,找到cluster_count集群的中心,并对集群周围的输入样本进行分组。在输出标签(i)中包含存储在第i行样本矩阵中的样本的聚簇索引。 拉普拉斯算子,通过求和使用Sobel算子计算的第二个x和y导数来计算源图像的拉普拉斯算子:dst(x,y)= d2src / dx2 d2src / dy2指定aperture_size = 1给出等于卷积的最快变量具有以下内核的图像:| 0 1 0 | | 1 -4 1 | | 0 1 0 |与cvSobel函数类似,不进行缩放,支持输入和输出格式的相同组合。 线,绘制图像中pt1和pt2点之间的线段。该行被图像或ROI矩形裁剪。对于具有整数坐标的非抗锯齿线,使用8连接或4连接的Bresenham算法。粗线用圆形末端绘制。使用高斯滤波绘制抗锯齿线。 LinearPolar,该功能模拟人类的“中心凹”视觉,可用于快速缩放和旋转不变模板匹配,对象跟踪等。 LoadUnmanagedModules,尝试从特定位置加载opencv模块。 日志,计算输入数组的每个元素的绝对值的自然对数:dst(I)= log(abs(src(I))),src(I)!= 0 dst(I)= C,src(I)= 0 C为大负数(当前实施为-700)。 LogPolar,该功能模拟人的“中心凹”视觉,可用于快速缩放和旋转不变模板匹配,用于对象跟踪等。 LUT,使用查找表中的值填充目标数组。条目的索引取自源数组。也就是说,函数处理src的每个元素如下:dst(I)= lut [src(I) DELTA]其中,如果src具有深度CV_8U,则DELTA = 0,如果src具有深度CV_8S,则为DELTA = 128。 马哈拉诺比斯,计算两个向量之间的加权距离并返回。 MakeType,此函数与MakeType宏执行相同。 MatchShapes,比较两种形状。这三种方法都使用胡时刻。 MatchTemplate,这个函数类似于cvCalcBackProjectPatch。它通过图像进行剪切,使用指定的方法将大小wxh的重叠块与模板进行比较,并将比较结果存储到结果中。 Max,计算两个数组的每个元素最大值:dst(I)= max(src1(I),src2(I))所有数组必须具有单个通道,相同的数据类型和相同的大小(或ROI大小) .. 意思是,为每个通道独立计算阵列元素的平均值M:N = sumI mask(I)!= 0 Mc = 1 / N * sumI,mask(I)!= 0 arr(I)c如果数组是IplImage和COI被设置,该功能仅处理所选通道,并将平均值存储到第一标量分量(S0)。 MeanShift,迭代找到对象中心,给出其背投影和搜索窗口的初始位置。进行迭代,直到搜索窗口中心移动小于给定值和/或直到函数完成最大迭代次数为止。 MeanStdDev(IInputArray,IOutputArray,IOutputArray,IInputArray),计算数组元素的平均值和标准偏差。 MeanStdDev(IInputArray,MCvScalar,MCvScalar,IInputArray)函数cvAvgSdv为每个通道独立地计算数组元素的平均值和标准偏差。 MedianBlur,使用中值滤镜模糊图像 合并,这个功能与cvSplit相反。如果目标阵列具有N个通道,则如果前N个输入通道不是IntPtr.Zero,则它们都将复制到目标阵列,否则如果前N个单个源通道不是IntPtr.Zero,则该特定通道为复制到目标数组中,否则会引起错误。其他源频道(超出前N个)必须始终为IntPtr.Zero。对于IplImage cvCopy与COI集合也可以用于将单个通道插入到图像中。 Min,计算两个数组的每个元素最小值:dst(I)= min(src1(I),src2(I))所有数组必须具有单个通道,相同的数据类型和相同的大小(或ROI大小) .. MinAreaRect(PointF []),查找特定数组点的边界矩形。 MinAreaRect(IInputArray),找到包围输入2D点集的最小区域的旋转矩形。 MinEnclosingCircle(PointF []),使用迭代算法找到2D点集的最小外接圆。如果结果圆包含所有输入点,则返回非零,否则返回0(即算法失败)。 MinEnclosingCircle(IInputArray),Fi使用迭代算法对2D点集进行最小外切圆。如果结果圆包含所有输入点,则返回非零,否则返回0(即算法失败)。 MinEnclosingTriangle,找到一个包围2D点集的最小面积的三角形,并返回其区域。 MinMaxIdx,查找数组中的全局最小值和最大值。 MinMaxLoc,找到最小和最大元素值及其位置。在整个阵列中搜索极值,选择的ROI(在IplImage的情况下),或者如果mask不是IntPtr.Zero,则在指定的数组区域中。如果阵列有多个通道,则必须为IplImage,并设置COI。如果多维数组min_loc-> x和max_loc-> x将包含极值的原始(线性)位置。 MixChannels,函数cvMixChannels是cvSplit和cvMerge以及某些形式的cvCvtColor的一般化形式。可用于更改飞机的顺序,添加/删除Alpha通道,提取或插入单个飞机或多个飞机等。 时刻,计算直到第三阶的空间和中心矩,并将它们写入时刻。然后可以使用时间来计算形状,其面积,主轴和各种形状特征的重心,包括7胡氏不变量。 形态学,进行先进的形态学变换。 MulSpectrums,执行作为实际或复杂傅里叶变换结果的两个CCS打包或复杂矩阵的每元素乘法。 乘以,计算两个数组的每个元素乘积:dst(I)= scale * src1(I)* src2(I)所有数组必须具有相同的大小(或ROI大小)。 MulTransposed,计算src及其转置的乘积。如果order = 0,则dst = scale(src-delta)*(src-delta)^ T,否则dst = scale(src-delta)^ T *(src-delta) NamedWindow,创建一个可用作图像和轨道栏的占位符的窗口。创建的窗口被他们的名字所补充。如果具有这样一个名称的窗口已经存在,则该功能不起作用 Norm(IInputArray,NormType,IInputArray),返回计算的范数。多通道阵列被视为单通道,也就是将所有通道的结果组合起来。 Norm(IInputArray,IInputOutputArray,NormType,IInputArray),返回计算的范数。多通道阵列被视为单通道,也就是将所有通道的结果组合起来。 规范化,规范化输入数组,使其规范或值范围取一定值。 OclFinish,完成OpenCL队列 OclGetPlatformsSummary,将OpenCL平台摘要作为字符串获取。 OclSetDefaultDevice,设置默认的opencl设备。 PCABackProject,从PC投影重新构建矢量 PCACompute(IInputArray,IInputOutputArray,IOutputArray,Double),执行提供的数据集的主成分分析。 PCACompute(IInputArray,IInputOutputArray,IOutputArray,Int32),执行提供的数据集的主成分分析。 PCAProject,项目向量到主要组件子空间.. PencilSketch,铅笔式非真实感线条画。 PerspectiveTransform(PointF [],IInputArray))以下列方式转换src的每个元素:(x,y) – >(x“/ w,y”/ w),其中(x“,y”,w“)= mat3x3 *(x,y,1)和w = w“,如果w”!= 0,否则为否。 PerspectiveTransform(IInputArray,IOutputArray,IInputArray)将src的每个元素(通过将其视为2D或3D向量)转换为以下方式:(x,y,z) – >(x“/ w,y”/ w,z (x,y) – >(x“/ w,y”/ w),其中(x“,y”,z“,w”)= mat4x4 *(x,y,z,1)或(x“,y”,w“)= mat3x3 *(x,y,1),w = w”,否则w“!= 0。 PhaseCorrelate,该函数用于检测两个图像之间发生的平移位移。该操作利用傅里叶变换定理来检测频域中的平移位移。它可以用于快速图像配准以及运动估计。 PointPolygonTest,确定点是在轮廓,外部还是位于边缘(或具有顶点的硬币)上。它相应地返回正值,负值或零值。 PolarToCart,计算x坐标,y坐标或每个矢量幅度(I)* exp(angle(I)* j),j = sqrt(-1):x(I)=幅度(I)* cos (角度(I)),y(I)=幅度(I)* sin(角度(I)))。 折线(IInputOutputArray,IInputArray,Boolean,MCvScalar,Int32,LineType,Int32),绘制单个或多个多边形曲线。 折线(IInputOutputArray,Point [],Boolean,MCvScalar,Int32,LineType,Int32),绘制单个或多个多边形曲线。 Pow,将输入数组的每个元素提升到p:dst(I)= src(I)p,如果p是整数dst(I)= abs(src(I))p,否则,对于非整数幂指数使用输入数组元素的绝对值。然而,可以使用一些额外的操作获取负值的真值,如下面的示例,计算数组元素的多维数据集根,如下所示:CvSize size = cvGetSize(src); CvMat * mask = cvCreateMat(size.height,size.width,CV_8UC1); cvCmpS(src,0,mask,CV_CMP_LT); / *找到负数元素* / cvPow(src,dst,1./3); cvSubRS(dst,cvScalarAll(0),dst,mask); / *否定负输入的结果* / cvReleaseMat(&mask);对于一些功率值,如整数值,0.5和-0.5,使用专门的更快的算法。 ProjectPoints(MCvPoint3D32f [],IInputArray,IInputArray,IInputArray,IInputArray,IOutputArray,Double),计算给定内在和外在相机参数的3D点到图像平面的投影。可选地,函数计算jacobians – 图像点的偏导数的矩阵作为所有输入参数w.r.t的函数。特定参数,内在和/或外在的。在cvCalibrateCamera2和cvFindExtrinsicCameraParams2的全局优化过程中使用了雅各布。该函数本身也用于计算与当前内在和外在参数的反投影误差。 ProjectPoints(IInputArray,IInputArray,IInputArray,IInputArray,IInputArray,IOutputArray,IOutputArray,Double),给定内在和外在的相机参数,计算3D点到图像平面的投影。可选地,函数计算jacobians – 图像点的偏导数的矩阵作为所有输入参数w.r.t的函数。特定参数,内在和/或外在的。在cvCalibrateCamera2和cvFindExtrinsicCameraParams2的全局优化过程中使用了雅各布。该函数本身也用于计算当前内在和外在参数的反投影误差。注意,将固有和/或外在参数设置为特殊值,该函数可用于仅计算外在变换或仅内在变换(即,稀疏点集合的失真)。 PSNR,计算PSNR图像/视频质量度量。 PutText,使用指定的字体和颜色呈现图像中的文本。打印的文字被ROI矩形裁剪。不属于指定字体的符号将被替换为矩形符号。 PyrDown,执行高斯金字塔分解的下采样步骤。首先,它使用指定的过滤器卷积源图像,然后通过排除偶数行和列来对图像进行下采样。 PyrMeanShiftFiltering,使用移植算法过滤图像。 PyrUp,执行高斯金字塔分解的上采样步骤。首先,通过注入甚至零行和列来对源图像进行上采样,然后将指定的滤波器的乘积乘以4作为插值。所以目的地图像是源图像的四倍。 Randn(IInputOutputArray,IInputArray,IInputArray),使用正态分布的随机数填充数组。 Randn(IInputOutputArray,MCvScalar,MCvScalar),用正态分布的随机数填充数组。 RandShuffle,通过在每个迭代上交换随机选择的矩阵元素对(在多通道数组的情况下每个元素可能包含多个组件)来洗牌。 Randu(IInputOutputArray,IInputArray,IInputArray),生成单个均匀分布的随机数或随机数的数组。 Randu(IInputOutputArray,MCvScalar,MCvScalar),生成单个均匀分布的随机数或随机数的数组。 RawDataToBitmap,将原始数据转换为位图。 ReadCloud,从文件读取点云。 矩形,绘制由CvRect结构指定的矩形。 RedirectError(IntPtr,IntPtr,IntPtr)设置一个新的错误处理程序,可以是标准处理程序之一或具有特定界面的自定义处理程序。处理程序采用与cvError函数相同的参数。如果处理程序返回非零值,程序将被终止,否则继续。错误处理程序可以使用cvGetErrMode来检查当前错误模式来做出决定。 RedirectError(CvInvoke。CvErrorCallback,IntPtr,IntPtr)设置一个新的错误处理程序,可以是标准处理程序之一或具有特定界面的自定义处理程序。处理程序采用与cvError函数相同的参数。如果处理程序返回非零值,程序将被终止,否则继续。错误处理程序可以使用cvGetErrMode来检查当前错误模式来做出决定。 通过将矩阵行/列作为一组1D向量进行处理,对向量减少矩阵,并对向量执行指定的操作,直到获得单行/列。 重映射,将通用几何变换应用于图像.. 重复,使用源数组平铺填充目标数组:dst(i,j)= src(i mod rows(src),j mod cols(src))因此,目标数组可能大于源数组。 ReprojectImageTo3D,将1通道视差图转换为3通道图像,3D表面。 调整大小,调整图像src的大小或达到指定的大小。 ResizeForFrame,调整图像大小,使其适合给定的框架。 罗德里格斯将旋转矢量转换为旋转矩阵,反之亦然。旋转矢量是旋转矩阵的紧凑表示。旋转矢量的方向是旋转轴,矢量的长度是围绕轴的旋转角度。 RotatedRectangleIntersection,找出两个旋转的矩形之间是否存在交集。 SanityCheck,检查C结构的大小是否与C#的大小匹配。 SeamlessClone,图像编辑任务涉及全局变化(颜色/强度校正,过滤器,变形)或与选择相关的本地更改。在这里,我们有兴趣以无缝和轻松的方式实现本地更改,即仅限于区域手动选择(ROI)的变更。变化的程度从轻微的扭曲到新颖的内容完全替代。 SegmentMotion,查找所有运动段,并在segMask中标记它们,并使用各自的值(1,2,…)。它还返回一系列CvConnectedComp结构,每个运动组件一个。运行方向之后,可以使用cvCalcGlobalOrientation使用提取的特定组件的掩码(使用cvCmp)来计算每个组件的运动方向。 SetErrMode,设置指定的错误模式.. SetErrStatus,将错误状态设置为指定的值。大多数情况下,该功能用于复位错误状态(设置为CV_StsOk)以在错误后恢复。在其他情况下,调用cvError或CV_ERROR更为自然 SetIdentity,Initializing scaling identity matrix:arr(i,j)= value if i = j,否则为0。 SetNumThreads,设置并行OpenCV函数使用的线程数。 Sobel,Sobel算子结合高斯平滑和微分,因此结果或多或少对噪声具有鲁棒性。最常见的是,函数用(xorder = 1,yorder = 0,aperture_size = 3)或(xorder = 0,yorder = 1,aperture_size = 3)调用,以计算第一个x或y-图像导数。第一种情况对应于。 ,。 ,。 ,| -1 0 1 |。 ,| -2 0 2 |。 ,| -1 0 1 |。 ,。 ,内核和第二个对应。 ,。 ,| -1 -2 -1 |。 ,| 0 0 0 |。 ,| 1 2 1 |。 ,。 , 要么。 ,。 ,| 1 2 1 |。 ,| 0 0 0 |。 ,| -1 -2 -1 |。 ,。 ,内核,取决于图像原点(IplImage结构的原始字段)。不进行缩放,因此目标图像通常具有比源图像更大的绝对值数字。为了避免溢出,如果源图像是8位,则该功能需要16位目标图像。结果可以使用cvConvertScale或cvConvertScaleAbs函数转换回8位。除了8位图像,该功能还可以处理32位浮点图像。源和目的地都必须是相同大小或ROI大小的单通道图像。 求解,求解线性系统(src1)*(dst)=(src2)。 SolveCubic找到三次方程的真实根源:coeffs [0] * x ^ 3 coeffs [1] * x ^ 2 coeffs [2] * x coeffs [3] = 0(如果coeffs是4元素向量)或x ^ 3 coeffs [0] * x ^ 2 coeffs [1] * x coeffs [2] = 0(如果coeffs是3元素向量)。 SolveLP,使用单纯形算法(Simplex Method)求解给定(非整数)线性规划问题。我们的意思是“线性规划问题”(或LP问题,简称为)可以表达为:最大化c x受制于:Ax <= b和x> = 0。 SolvePnP(IInputArray,IInputArray,IInputArray,IInputArray,IOutputArray,IOutputArray,Boolean,SolvePnpMethod),使用已知的内在参数和每个视图的外部参数来估计外部相机参数。必须指定3D对象点及其对应的2D投影的坐标。该功能还可以最大限度地减少背投影误差。 SolvePnP(MCvPoint3D32f [],PointF [],IInputArray,IInputArray,IOutputArray,IOutputArray,Boolean,SolvePnpMethod),使用已知的内在参数和每个视图的外在参数估计外部相机参数。必须指定3D对象点及其对应的2D投影的坐标。此功能还可以最大限度地减少背投影误差。 SolvePnPRansac,使用RANSAC方案从3D-2D点对应查找对象姿势。 SolvePoly,找到具有实数的任何度数多项式的所有真实和复杂的根。 拆分,将多通道阵列划分为单独的单通道阵列。有两种模式可用于操作。如果源阵列具有N个通道,那么如果前N个目标通道不是IntPtr.Zero,则它们都从源阵列中提取出来,否则如果前N个单个目标通道不是IntPtr.Zero,则该特定通道为提取,否则会出现错误。其他目的地频道(超出前N个)必须始终为IntPtr.Zero。对于IplImage cvCopy与COI集合也可用于从图像中提取单个通道。 Sqrt,计算每个源数组元素的平方根。在多通道阵列的情况下,每个通道被独立地处理。功能精度与内置的std :: sqrt ..大致相同。 StereoCalibrate(IInputArray,IInputArray,IInputArray,IInputOutputArray,IInputOutputArray,IInputOutputArray,IInputOutputArray,Size,IOutputArray,IOutputArray,IOutputArray,IOutputArray,CalibType,MCvTermCriteria),估计在制作立体声对的两台摄像机之间的转换。如果我们有一台立体相机,其中两个相机的相对位置和方向是固定的,如果我们计算了相对于第一台相机和第二台相机的对象的姿态,(R1,T1)和(R2,T2) (可以使用cvFindExtrinsicCameraParams2完成),显然这些姿势将相互关联,即给定(R1,T1)应该可以计算(R2,T2) – 我们只需要知道位置和方向第二台相机相对于第一台相机。这是所描述的功能,它计算(R,T),使得:R2 = R * R1,T2 = R * T1 T StereoCalibrate(MCvPoint3D32f [] [],PointF [] [],PointF [] [],IInputOutputArray,IInputOutputArray,IInputOutputArray,IInputOutputArray,Size,IOutputArray,IOutputArray,IOutputArray,IOutputArray,CalibType,MCvTermCriteria),估计2台摄像机之间的转换立体声对。如果我们有一台立体相机,其中两个相机的相对位置和方向是固定的,如果我们计算了一个物体相对于第一台照相机和第二台照相机的姿态,(R1,T1)和(R2,T2) (可以使用cvFindExtrinsicCameraParams2完成),显然这些姿势将相互关联,即给定(R1,T1)应该可以计算(R2,T2) – 我们只需要知道位置和方向第二台相机相对于第一台相机。这是所描述的功能,它计算(R,T),使得:R2 = R * R1,T2 = R * T1 T StereoRectify,计算每个摄像机的旋转矩阵(虚拟地)使两个摄像机图像平面成为同一平面。因此,这使得所有的对极线平行,从而简化了密集的立体声对应问题。在输入时,该函数采用由cvStereoCalibrate计算的矩阵,并且在输出上给出2个旋转矩阵,并在新坐标中给出2个投影矩阵。该函数通常在cvStereoCalibrate之后调用,它计算相机矩阵,失真系数R和T。 StereoRectifyUncalibrated,计算整流变换,而不知道摄像机的内在参数及其在空间中的相对位置,因此后缀“未校准”。与cvStereoRectify的另一个相关的区别是该函数不输出对象(3D)空间中的整流变换,而是输出由单应性矩阵H1和H2编码的平面透视变换。该功能实现了以下算法[Hartley99] .. 风格化,风格化旨在产生数字图像,其各种效果不会集中在照片写实上。边缘感知过滤器是程式化的理想选择,因为它们可以抽取低对比度的区域,同时保留或增强高对比度特征。 减去,从另一个减去一个数组:dst(I)= src1(I)-src2(I)如果mask(I)!= 0所有的数组必须具有相同的类型,除了掩码和相同的大小(或ROI大小)。 Sum,计算每个通道的阵列元素的和S Sc = sumI arr(I)c如果阵列是IplImage和COI,则该函数仅处理所选通道,并将和存储到第一标量分量(S0) .. SVBackSubst,执行奇异值返回替换 SVDecomp将矩阵A分解为对角矩阵和两个正交矩阵的乘积:A = U * W * VT其中W是可以被编码为奇异值的1D向量和U和V的奇异值的对角矩阵。奇异值是非负的,并按照下降顺序排列(连同U和V列)。 交换(Mat,Mat),交换两个矩阵。 交换(UMat,UMat),交换两个矩阵。 TextureFlattening,通过仅在边缘位置保留梯度,在与泊松求解器集成之前,可以清除所选区域的纹理,使其内容平坦。这里使用Canny Edge Detector .. 阈值,将固定级别阈值应用于单通道阵列。该功能通常用于从灰度图像中获取双电平(二进制)图像(cvCmpS也可用于此目的)或用于去除噪声,即滤除具有太小或太大值的像素。由threshold_type确定的功能支持的几种阈值类型。 跟踪,返回矩阵的对角线元素的总和 转换,执行数组src和存储的每个元素的矩阵变换dst中的结果源和目标数组应具有相同的深度和相同的大小或所选的ROI大小。 transmat和shiftvec应该是真正的浮点矩阵 转置,转置矩阵src1:dst(i,j)= src(j,i)注意,在复矩阵的情况下,不进行复共轭。共轭应该单独完成:例如,查看cvXorS中的示例代码。 TriangulatePoints,通过三角测量重建点 Undistort,转换图像以补偿径向和切向透镜失真。 UndistortPoints,与cvInitUndistortRectifyMap类似,与之相反。这些功能类似于它们都用于校正镜头失真并执行可选的透视(矫正)变换。它们是相反的,因为函数cvInitUndistortRectifyMap实际上执行反向转换,以便正确初始化映射,而此函数执行正向转换。 UpdateMotionHistory,更新运动历史图像如下:mhi(x,y)=时间戳如果轮廓(x,y)!= 0 0如果轮廓(x,y)= 0,并且mhi(x,y)<timestamp-duration mhi (x,y)否则就是将发生运动的MHI像素设置为当前时间戳,而清除运动的像素被清除。 VConcat,垂直连接两个图像。 WaitKey,无限等待密钥事件(延迟<= 0)或“延迟”毫秒。 WarpAffine,对图像应用仿射变换 WarpPerspective,将透视变换应用于图像。 流域,实现分水岭,非参数标记分割算法的一个变体,在[Meyer92]中描述。在将图像传递给函数之前,用户必须大致概述图像标记中所需的区域,其中正(> 0)索引,即每个区域被表示为具有像素值1,2,3等的一个或多个连接分量。这些分量将是未来图像区域的“种子”。标记中与轮廓区域相关的所有其他像素不知道并且应该由算法定义,应该设置为0“,在函数的输出上,标记中的每个像素被设置为“种子”组分,或在区域之间的边界-1。 WriteCloud,写点云到文件。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/126706.html原文链接:https://javaforall.cn

0 人点赞