EmguCV类(CvInvoke - Class) 方法整理 - 图文

更新时间:2024-04-27 06:46:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

方法—相机标定

CalibrationMatrixValues 使用计算的相机校准矩阵,像素中的图像帧分辨率和物理孔径大小来计算各种有用的相机(传感器/透镜)特性 棋盘格角点的绘制(摄像机标定) 找到棋盘角的亚像素精度的准确位置 尝试确定输入图像是否是棋盘图案的视图,并定位标定板内角点 找到圆圈网格中心 DrawChessboardCorners Find4QuadCornerSubpix FindChessboardCorners FindCirclesGrid(Image, Size, CalibCgType, Feature2D) FindCirclesGrid(IInputArray, Size, IOutputArray, 找到圆圈网格中心 CalibCgType, Feature2D) GetDefaultNewCameraMatrix GetOptimalNewCameraMatrix StereoCalibrate(IInputArray, IInputArray, IInputArray, IInputOutputArray, IInputOutputArray, IInputOutputArray, IInputOutputArray, Size, IOutputArray, IOutputArray, IOutputArray, IOutputArray, CalibType, MCvTermCriteria) 返回默认的新相机矩阵 基于自由缩放参数返回新的相机矩阵 用于标定立体相机(Estimates transformation between the 2 cameras making a stereo pair. If we have a stereo camera, where the relative position and orientatation of the 2 cameras is fixed, and if we computed poses of an object relative to the fist camera and to the second camera, (R1, T1) and (R2, T2), respectively (that can be done with cvFindExtrinsicCameraParams2), obviously, those poses will relate to each other, i.e. given (R1, T1) it should be possible to compute (R2, T2) - we only need to know the position and orientation of the 2nd camera relative to the 1st camera. That's what the described function does. It computes (R, T) such that: R2=R*R1, T2=R*T1 + T) 用于标定立体相机 StereoCalibrate(MCvPoint3D32f[][],PointF[][],PointF[][], IInputOutputArray, IInputOutputArray, IInputOutputArray, IInputOutputArray, Size, IOutputArray, IOutputArray, IOutputArray, IOutputArray, CalibType, MCvTermCriteria) StereoRectify StereoRectifyUncalibrated

计算每个摄像机的旋转矩阵(虚拟地) 使两个摄像机图像平面处于相同的平面。 在不知道摄像头的固有参数和它们在空间的相对位置计算校正变换 方法—内外方位元素确定

CalibrateCamera(IInputArray, IInputArray, Size, 估计每个视图的照相机固有参数和外IInputOutputArray, IInputOutputArray, 部参数 IOutputArray, IOutputArray, CalibType, MCvTermCriteria) CalibrateCamera(MCvPoint3D32f[][],PointF[][], 估计每个视图的照相机固有参数和外Size, IInputOutputArray, IInputOutputArray, 部参数 CalibType, MCvTermCriteria,Mat[],Mat[]) SolvePnPRansac StereoRectify 利用Ransac方法利用点对求解相机姿态 Undistort UndistortPoints 计算每个摄像机的旋转矩阵(虚拟地) 使两个摄像机图像平面处于相同的平面。 转换图像以补偿径向和切向透镜失真 与cvInitUndistortRectifyMap相似但也不同,相似的内容是他们都可用于校正镜头失真和透视变换。不同的是函数cvInitUndistortRectifyMap实际上执行的是反向转换以初始化地图,而这个函数执行的是正向变换。

方法—数组、矩阵运算

Add AddWeighted Add AddWeighted BitwiseAnd 数组相加 数组权重相加 数组相加 数组权重相加 计算两个数组的每元素的逐位逻辑连接:dst(I)= src1(I)&src2(I)if mask(I)!= 0。所有数组必须具有相同的类型(除了掩膜)和大小 计算两数组差值的绝对值 对输入数据或其选中的ROI求和并平方(Adds the input src or its selected region, raised to power 2, to the accumulator sqsum) 计算源数据的加权平均和,使得acc变为帧序列的运行平均值(Calculates weighted sum of input src and the accumulator acc so that acc becomes a running average of frame sequence: acc(x,y)=(1-alpha) * acc(x,y) + alpha * image(x,y) if mask(x,y)!=0 where alpha regulates update speed (how fast dst(I)=src1(I) & src2(I) AbsDiff AccumulateSquare AccumulateWeighted accumulator forgets about previous frames). BitwiseOr 计算两个数组的每元素逐位分离(Calculates per-element bit-wise disjunction of two arrays) 计算一组向量的协方差矩阵 清除(设置为零)密集数组的特定元素或删除稀疏数组的元素。 如果买没有元素,该函数不运行 为数组的特定元素分配新值 返回方阵矩阵的行列式。 计算对称矩阵的特征值和特征向量 计算输入数组的每个元素的指数 使用四种方法之一计算基本矩阵,如果没有找到矩阵,则返回找到的基本矩阵(1或3)和0的数量 执行广义矩阵乘法 dst(I)=src1(I)|src2(I) CalcCovarMatrix cvClearND cvSet2D Determinant Eigen Exp FindFundamentalMat dst(I)= exp(src(I)) Gemm dst = alpha*op(src1)*op(src2) + beta*op(src3), where op(X) is X or XT dst(I)=max(src1(I), src2(I)) dst(I)= min(src1(I),src2(I)) Flip Invert InvertAffineTransform LUT Max Min MinMaxIdx MinMaxLoc 以不同的3种方式翻转数组(行和列索引为0) 反转矩阵src1并将结果存储在src2中 反转仿射变换 使用查找表中的值填充目标数组 计算两个数组的每个元素最大值赋给新数组 计算两个数组的每元素最小值,赋值到新数组中 查找数组中全局的最大值最小值 找到最小和最大元素值及其位置。如果 阵列有多个通道,则必须为IplImage,并设置COI。 计算原始数据及其转置的乘积(Calculates the product of src and its transposition. The function evaluates dst=scale(src-delta)*(src-delta)^T if order=0, and dst=scale(src-delta)^T*(src-delta) otherwise.) 返回计算的范数。多通道阵列被视为单通道,即所有通道的结果相加。 MulTransposed Norm(IInputArray, NormType, IInputArray) Norm(IInputArray, IInputOutputArray, NormType, IInputArray) Normalize Randn(IInputOutputArray, IInputArray, IInputArray) Randn(IInputOutputArray, MCvScalar, MCvScalar) RandShuffle Randu(IInputOutputArray, IInputArray, IInputArray) Randu(IInputOutputArray, MCvScalar, MCvScalar) SetIdentity Sqrt Sum SVBackSubst SVDecomp Swap(Mat, Mat) Swap(UMat, UMat) Trace Transform 返回计算的范数。多通道阵列被视为单通道,即所有通道的结果相加。 规范化输入数组 用正态分布的随机数填充数组 用正态分布的随机数填充数组 将原数组(矩阵)打乱 返回均匀分布的随机数,填入数组或矩阵 返回均匀分布的随机数,填入数组或矩阵 初始化标度单位矩阵 为源数据的每个数组元素开方。多通道数据每个通道会被单独处理 对每个通道计算阵列元素的和S、 进行奇异值回代(Performs a singular value back substitution.) SVD分解,将矩阵A 分解为对角矩阵和两个正交矩阵的乘积 交换两个矩阵 交换两个矩阵 返回矩阵对角线元素之和 Sc = sumI arr(I)c 对src数组的每个元素进行矩阵变换, 并将结果存储到dst中。源数组和目标数据应该有相同的深度、尺寸或ROI的尺寸。transmat 和 shiftvec应该是浮点型矩阵 转置矩阵src1,在复矩阵的情况下,不进行复共轭。 dst(i,j)= src(j,i) Transpose

方法—头文件

cvGetCol cvGetCols cvGetDiag cvGetImage 返回头文件信息(header),对应输入数组的指定列 返回头文件信息,对应输入数组跨越的列数(col span) 返回头文件信息,对应输入数组的指定对角线 返回图像的头文件信息,输入数据类型可以是(matrix - CvMat*, or image - IplImage*) cvGetMat 返回输入矩阵的头文件信息,输入矩阵 可以是matrix - CvMat, image - IplImage 或 multi-dimensional dense array - CvMatND* cvGetRawData cvGetRow cvGetRows cvGetSubRect 以低级别信息填充输出变量。 返回头文件信息,对应于输入数组的指定行。 返回头文件信息,对应输入数组的指定行跨度。 返回头文件,对应于输入数组的指定矩形。换句话说,它允许用户将输入阵列的一部分视为独立阵列。通过还可提取ROI的子阵列。 cvInitImageHeader 初始化图像的头文件结构,指针指向由 用户指定,并返回指针。(Initializes the image header structure, pointer to which is passed by the user, and returns the pointer.) cvReleaseImage cvReleaseImageHeader cvReleaseMat cvReshape 释放头文件和图像数据(Releases the header and the image data.) 释放头文件 参照计数器递减矩阵数据,并释放头文件 初始化CvMat头文件,使其指向与原始数组相同的数据,但形状不同,数量的通道不同,行列数不同 将用户数据分配给矩阵头文件 为新矩阵和底层数据分配头信息(header),并返回一个指向创建的矩阵的指针。 矩阵逐行存储。 所有行都对齐4个字节。 创建头文件并分配数据 cvSetData cvCreateMat cvCreateImage

方法—图像处理准备

BitwiseNot CheckRange 反转 检查每个数组元素既不是NaN也不是+ - inf,检查将在多个通道上单独进行,该功能还能检查每个值是否在最小值和最大值之间。 对比有限自适应直方图均衡(CLAHE) 比较两个数组的相应元素并填充目标掩码数组:dst(I)= src1(I)op src2(I) 返回数组中非零元素的数量 检查每个数组元素既不是NaN也不是 CLAHE Compare CountNonZero cvCheckArr

Infinity。 如果设置了CV_CHECK_RANGE,它还会检查每个元素是否大于或等于minVal并小于maxVal cvCreateSparseMat cvGetSize CvtColor(IInputArray, IOutputArray, ColorConversion, Int32) 分配一个多维系数矩阵的阵列。初始该矩阵不含任何元素 返回输入矩阵或图像的行列数 CvtColor(IInputArray, IOutputArray, Type, Type) EqualizeHist ExtractChannel GetDepthType(Type) GetDepthType(DepthType) Inpaint InRange MixChannels 将输入图像从一个颜色空间转换为另一个。该函数忽略IplImage头的colorModel和channelSeq字段,因此应该正确指定源图像颜色空间(包括RGB空间的通道顺序,例如BGR表示B0的24位格式G0 R0 B1 G1 R1 ...布局,而RGB表示具有R0 G0 B0 R1 G1 B1 ...布局的24位格式) 将输入图像从一个颜色空间转换为另一个。 直方图均衡化 从图像中提取特定通道 获取相应的opencv深度类型 获取相应的深度类型 使用补绘来恢复该图像定义位置像素的亮度 对输入数组的每个元素执行范围检查 把输入的矩阵(或矩阵数组)的某些通道拆分复制给对应的输出矩阵(或矩阵数组)的某些通道中,可用于更改通道的顺序,添加/删除Alpha通道,提取或插入单个通道或多个通道等。 将图像src调整到指定大小 调整图像大小,使其适合给定的框架 Resize ResizeForFrame Split 将多通道阵列划分为单独的单通道阵列。有两种模式可用于操作。如果原始阵列具有N个通道,那且前N个目标通道不是IntPtr.Zero,则它们都从源阵列中提取,若前N个通道中仅有一个不是IntPtr.Zero,则该特定通道为提取,否则会出现错误

方法—常规方法

BoundingRectangle Accumulate ApplyColorMap BoxPoints(RotatedRect) 返回右上角点 整幅图像或选择区域累加 将颜色应用于图像 计算RotatedRect节点(RotatedRect该 类表示平面上的旋转矩形,有三个属性:矩形中心点(质心)、边长(长和宽)、旋转角度) BoxPoints(RotatedRect, IOutputArray) CalcHist CalcMotionGradient CompareHist ConvertMaps ConvertPointsFromHomogeneous ConvertPointsToHomogeneous ConvertScaleAbs 计算RotatedRect节点数组 计算图像的直方图 计算x,y方向的导数 比较两直方图 转换图像的表达方法 将点从齐性空间转换为欧氏空间 将点从欧式空间转换为齐性空间 与cvCvtScale类似,但它存储转换结果的绝对值。使用线性变换转换输入数组元素成8位无符号整型 ConvexHull(PointF[], Boolean) ConvexHull(IInputArray, IOutputArray, Boolean, Boolean) ConvexityDefects CopyMakeBorder 使用Sklansky算法找到2D点集的凸包 使用Sklansky算法找到2D点集的凸包。 找出轮廓的凸度缺陷 链接 将源2D数组复制到目标数组的内部, 并在复制的区域周围形成指定类型的边框。 当需要模拟与嵌入到特定算法实现中的边框类型不同的边框类型时,该功能非常有用。 将CvMat、Ipiimage、CvMatND转换为 矩阵 它将一个数组复制到另一个数组,首先dst(I)=src(I)*scale + 执行缩放(可选)然后转换类型(可选),(shift,shift,...) 多通道阵列每个通道被单独处理。 将所选元素从输入数组复制到输出数组。如果任何传递的数组是IplImage类型,则使用其ROI和COI字段。两个数组必须具有相同的类型,相同的维数和相同的大小。 dst(I)= src(I)if mask(I)!= 0 CvArrToMat cvConvertScale cvCopy cvGetSpatialMoment 获取空间矩,在图像矩定义为:M_ {x_order,y_order} = sum_ {x,y}(I(x,y)* x ^ {x_order} * y ^ {y_order})其中I (x,y)是像素的亮度(x,y)。(Retrieves the spatial moment, which in case of image moments is defined as: M_{x_order,y_order}=sum_{x,y}(I(x,y) * x^{x_order} * y^{y_order}) where I(x,y) is the intensity of the pixel (x, y).) 检索归一化的中心矩,在图像矩定义为:eta_ {x_order,y_order} = mu_ {x_order,y_order} / M00 ^ {(y_order + x_order)/ 2 + 1}的情况下,其中mu_ cvGetNormalizedCentralMoment {x_order,y_order}是中心时刻(Retrieves normalized central moment, which in case of image moments is defined as: eta_{x_order,y_order}=mu_{x_order,y_order} / M00^{(y_order+x_order)/2+1}, where mu_{x_order,y_order} is the central moment) 返回单通道数组的特定元素。如果阵列 有多个通道,则会引发运行时错误。 返回单通道数组的特定元素。如果阵列 有多个通道,则会引发运行时错误。 cvGetReal3D cvGetImageCOI cvGetImageROI cvGetCentralMoment 返回单通道数组的特定元素。如果阵列有多个通道,则会引发运行时错误。 返回图像感兴趣通道(若所有通道已选返回0) 返回图像感兴趣通道(若所有通道已选返回0) 检索中心矩?(moment),在图像中定义为mu_{x_order,y_order} =sum_{x,y}(I(x,y)*(x-x_c)^{x_order} * (y-y_c)^{y_order}) 返回图像感兴趣通道(若所有通道已选返回0) 返回图像感兴趣通道(若所有通道已选返回0) 初始化已分配的CvMat结构。它可以用于使用OpenCV矩阵函数处理原始数据。 初始化由用户分配的CvMatND结构 查找包含两个输入矩形的最小面积矩形 以如下方式初始化矩阵:arr(i,j)=(end-start)*(i*cols(arr)+j)/(cols(arr)*rows(arr)) 释放稀疏数组,并在退出时清除数组指针 释放图像ROI。之后整幅图像为被选中状态 应用一种线迭代器。读取位于pt1和pt2之间的所有图像点(包括终点)并将它们存储到缓冲区 是设置图像的COI的函数,coi为0时表示选择所有通道,1表示第一个通道,2表示第二个等等。 其中x_c = M10 / M00,y_c = M01 / M00 - 重心的坐标 cvGetReal1D cvGetReal2D cvGetImageCOI cvGetImageROI cvInitMatHeader cvInitMatNDHeader cvMaxRect cvRange cvReleaseSparseMat cvResetImageROI cvSampleLine cvSetImageCOI cvSetImageROI cvSetReal1D cvSetReal2D cvSetReal3D cvSetRealND Decolor EMD 基于给定的矩形设置图像的ROI 将新值分配给单通道阵列的特定元素 将新值分配给单通道阵列的特定元素 将新值分配给单通道阵列的特定元素 将新值分配给单通道阵列的特定元素 将彩色图像转换为灰度图像。 用来比较两幅图像相似性。EMD的思想是求得从一幅图像转化为另一幅图像的代价 对图像应用任意线性滤波器,支持就地操作 计算透视变换矩阵(单应矩阵)。 Filter2D FindHomography(PointF[],PointF[], IOutputArray, HomographyMethod, Double, IOutputArray) FindHomography(IInputArray, IInputArray, IOutputArray, HomographyMethod, Double, IOutputArray) FindNonZero GetPerspectiveTransform(PointF[],PointF[]) 计算透视变换矩阵(单应矩阵)。 查找非零像素的位置 计算透视变换的矩阵 (t_i x'_i,t_i y'_i,t_i)^T=map_matrix (x_i,y_i,1)T where dst(i)=(x'_i,y'_i), src(i)=(x_i,y_i), i=0..3. (x'_i,y'_i)^T=map_matrix (x_i,y_i,1)^T where dst(i)=(x'_i,y'_i), src(i)=(x_i,y_i), i=0..2 GetPerspectiveTransform(IInputArray, IInputArray) GetAffineTransform(PointF[],PointF[]) 计算透视变换的矩阵 计算仿射变换的矩阵 GetAffineTransform(IInputArray, IOutputArray) GetRectSubPix GetRotationMatrix2D GetStructuringElement GetTextSize GroupRectangles(VectorOfRect, VectorOfInt, Int32, Double) GroupRectangles(VectorOfRect, VectorOfInt, VectorOfDouble, Int32, Double) GroupRectangles(VectorOfRect, Int32, Double, VectorOfInt, VectorOfDouble) GroupRectanglesMeanshift 计算仿射变换的矩阵 从原图像中提取一个矩形区域 计算旋转矩阵 获取常用的结构元素的形状 计算文本字符串的宽度和高度 目标级联矩形的分组函数 目标级联矩形的分组函数 目标级联矩形的分组函数 目标级联矩形的分组函数 HConcat IlluminationChange 水平连接两个图像 将适当的非线性变换应用于选择的渐变场,然后与泊松解算器进行积分 (去除图像中的高光) 解码存储在缓冲区中的图像 解码存储在缓冲区中的图像 编码图像并将结果存储为字节向量 从指定的文件加载图像,并将指针返回到加载的图像。目前支持以下文件格式:Windows位图 - BMP,DIB; JPEG文件 - JPEG,JPG,JPE; 便携式网络图形 - PNG; 便携式图像格式 - PBM,PGM,PPM; 太阳光栅 - SR,RAS; TIFF文件 - TIFF,TIF; OpenEXR HDR图像 - EXR; JPEG 2000图像 - jp2 将多页图像从指定的文件加载到Mat对象的向量中 在指定窗口中显示图像 Imdecode(Byte[], ImreadModes, Mat) Imdecode(IInputArray, ImreadModes, Mat) Imencode Imread Imreadmulti Imshow Imwrite InsertChannel Integral Merge 将图像保存到指定的文件。根据文件扩 展名选择图像格式。只能使用此功能保存8位单通道或3通道(“BGR”通道)图像 将特定通道插入图像 计算源图像的积分图像 功能与CvSplit相反。如果目标阵列具有N个通道,那么如果前N个输入通道不是IntPtr.Zero,则它们都被复制到目标阵列,否则该特定通道是复制到目标数组中会引起错误。其他源通道(超出前N个)必须始终为IntPtr.Zero。 计算每个通道的数组元素的平均值,每个通道会被单独计算 Mean PCACompute(IInputArray,IInputOutputArray,对提供的数据集进行主成分分析 IOutputArray,Double) PCACompute(IInputArray,IInputOutputArray,对提供的数据集进行主成分分析 IOutputArray,Int32) PerspectiveTransform(PointF [],IInputArray) 以如下方式转换源数据中的每个元素: (x, y) -> (x'/w, y'/w),其中(x', y', w') = mat3x3 * (x, y, 1) and w = w' if w'!=0, inf otherwise PerspectiveTransform(IInputArray,IOutputArray,IInputArray) 以如下方式转换源数据(将其视为2D 或3D矢量)的每一个元素:(x, y, z) -> (x'/w, y'/w, z'/w) or (x, y) -> (x'/w, y'/w), 其中 (x', y', z', w') = mat4x4 * (x, y, z, 1) or (x', y', w') = mat3x3 * (x, y, 1) and w = w' if w'!=0, inf otherwise

CvCallingConvention CvErrorHandlerIgnoreError Opencv的调用约定 一个错误处理方法,将忽略任何错误并继续 CvErrorHandlerThrowException 默认的异常回调来处理OpenCV抛出的错误 ExternCudaLibrary cvextern库的文件名 ExternLibrary OpencvFFMpegLibrary OpenCVModuleList StringMarshalType cvextern库的文件名 opencv_ffmpeg库的文件名 opencv模块的列表 字符串封送类型 MorphologyDefaultBorderValue 默认形态值

本文来源:https://www.bwwdw.com/article/jiyg.html

Top