EmguCV类CvInvokeClass 方法整理要点.docx
- 文档编号:6238644
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:40
- 大小:34.38KB
EmguCV类CvInvokeClass 方法整理要点.docx
《EmguCV类CvInvokeClass 方法整理要点.docx》由会员分享,可在线阅读,更多相关《EmguCV类CvInvokeClass 方法整理要点.docx(40页珍藏版)》请在冰豆网上搜索。
EmguCV类CvInvokeClass方法整理要点
方法—相机标定
CalibrationMatrixValues
使用计算的相机校准矩阵,像素中的图像帧分辨率和物理孔径大小来计算各种有用的相机(传感器/透镜)特性
DrawChessboardCorners
棋盘格角点的绘制(摄像机标定)
Find4QuadCornerSubpix
找到棋盘角的亚像素精度的准确位置
FindChessboardCorners
尝试确定输入图像是否是棋盘图案的视图,并定位标定板内角点
FindCirclesGrid(Image
找到圆圈网格中心
FindCirclesGrid(IInputArray,Size,IOutputArray,CalibCgType,Feature2D)
找到圆圈网格中心
GetDefaultNewCameraMatrix
返回默认的新相机矩阵
GetOptimalNewCameraMatrix
基于自由缩放参数返回新的相机矩阵
StereoCalibrate(IInputArray,IInputArray,IInputArray,IInputOutputArray,IInputOutputArray,IInputOutputArray,IInputOutputArray,Size,IOutputArray,IOutputArray,IOutputArray,IOutputArray,CalibType,MCvTermCriteria)
用于标定立体相机(Estimatestransformationbetweenthe2camerasmakingastereopair.Ifwehaveastereocamera,wheretherelativepositionandorientatationofthe2camerasisfixed,andifwecomputedposesofanobjectrelativetothefistcameraandtothesecondcamera,(R1,T1)and(R2,T2),respectively(thatcanbedonewithcvFindExtrinsicCameraParams2),obviously,thoseposeswillrelatetoeachother,i.e.given(R1,T1)itshouldbepossibletocompute(R2,T2)-weonlyneedtoknowthepositionandorientationofthe2ndcamerarelativetothe1stcamera.That'swhatthedescribedfunctiondoes.Itcomputes(R,T)suchthat:
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
利用Ransac方法利用点对求解相机姿态
StereoRectify
计算每个摄像机的旋转矩阵(虚拟地)使两个摄像机图像平面处于相同的平面。
Undistort
转换图像以补偿径向和切向透镜失真
UndistortPoints
与cvInitUndistortRectifyMap相似但也不同,相似的内容是他们都可用于校正镜头失真和透视变换。
不同的是函数cvInitUndistortRectifyMap实际上执行的是反向转换以初始化地图,而这个函数执行的是正向变换。
方法—数组、矩阵运算
Add
数组相加
AddWeighted
数组权重相加
Add
数组相加
AddWeighted
数组权重相加
BitwiseAnd
计算两个数组的每元素的逐位逻辑连接:
dst(I)=src1(I)&src2(I)ifmask(I)!
=0。
所有数组必须具有相同的类型(除了掩膜)和大小
dst(I)=src1(I)&src2(I)
AbsDiff
计算两数组差值的绝对值
AccumulateSquare
对输入数据或其选中的ROI求和并平方(Addstheinputsrcoritsselectedregion,raisedtopower2,totheaccumulatorsqsum)
AccumulateWeighted
计算源数据的加权平均和,使得acc变为帧序列的运行平均值(Calculatesweightedsumofinputsrcandtheaccumulatoraccsothataccbecomesarunningaverageofframesequence:
acc(x,y)=(1-alpha)*acc(x,y)+alpha*image(x,y)ifmask(x,y)!
=0wherealpharegulatesupdatespeed(howfastaccumulatorforgetsaboutpreviousframes).
BitwiseOr
计算两个数组的每元素逐位分离(Calculatesper-elementbit-wisedisjunctionoftwoarrays)
dst(I)=src1(I)|src2(I)
CalcCovarMatrix
计算一组向量的协方差矩阵
cvClearND
清除(设置为零)密集数组的特定元素或删除稀疏数组的元素。
如果买没有元素,该函数不运行
cvSet2D
为数组的特定元素分配新值
Determinant
返回方阵矩阵的行列式。
Eigen
计算对称矩阵的特征值和特征向量
Exp
计算输入数组的每个元素的指数
dst(I)=exp(src(I))
FindFundamentalMat
使用四种方法之一计算基本矩阵,如果没有找到矩阵,则返回找到的基本矩阵(1或3)和0的数量
Gemm
执行广义矩阵乘法
dst=alpha*op(src1)*op(src2)+beta*op(src3),whereop(X)isXorXT
Flip
以不同的3种方式翻转数组(行和列索引为0)
Invert
反转矩阵src1并将结果存储在src2中
InvertAffineTransform
反转仿射变换
LUT
使用查找表中的值填充目标数组
Max
计算两个数组的每个元素最大值赋给新数组
dst(I)=max(src1(I),src2(I))
Min
计算两个数组的每元素最小值,赋值到新数组中
dst(I)=min(src1(I),src2(I))
MinMaxIdx
查找数组中全局的最大值最小值
MinMaxLoc
找到最小和最大元素值及其位置。
如果阵列有多个通道,则必须为IplImage,并设置COI。
MulTransposed
计算原始数据及其转置的乘积(Calculatestheproductofsrcanditstransposition.Thefunctionevaluatesdst=scale(src-delta)*(src-delta)^Tiforder=0,anddst=scale(src-delta)^T*(src-delta)otherwise.)
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
对每个通道计算阵列元素的和S、
Sc=sumIarr(I)c
SVBackSubst
进行奇异值回代(Performsasingularvaluebacksubstitution.)
SVDecomp
SVD分解,将矩阵A分解为对角矩阵和两个正交矩阵的乘积
Swap(Mat,Mat)
交换两个矩阵
Swap(UMat,UMat)
交换两个矩阵
Trace
返回矩阵对角线元素之和
Transform
对src数组的每个元素进行矩阵变换,并将结果存储到dst中。
源数组和目标数据应该有相同的深度、尺寸或ROI的尺寸。
transmat和shiftvec应该是浮点型矩阵
Transpose
转置矩阵src1,在复矩阵的情况下,不进行复共轭。
dst(i,j)=src(j,i)
方法—头文件
cvGetCol
返回头文件信息(header),对应输入数组的指定列
cvGetCols
返回头文件信息,对应输入数组跨越的列数(colspan)
cvGetDiag
返回头文件信息,对应输入数组的指定对角线
cvGetImage
返回图像的头文件信息,输入数据类型可以是(matrix-CvMat*,orimage-IplImage*)
cvGetMat
返回输入矩阵的头文件信息,输入矩阵可以是matrix-CvMat,image-IplImage或multi-dimensionaldensearray-CvMatND*
cvGetRawData
以低级别信息填充输出变量。
cvGetRow
返回头文件信息,对应于输入数组的指定行。
cvGetRows
返回头文件信息,对应输入数组的指定行跨度。
cvGetSubRect
返回头文件,对应于输入数组的指定矩形。
换句话说,它允许用户将输入阵列的一部分视为独立阵列。
通过还可提取ROI的子阵列。
cvInitImageHeader
初始化图像的头文件结构,指针指向由用户指定,并返回指针。
(Initializestheimageheaderstructure,pointertowhichispassedbytheuser,andreturnsthepointer.)
cvReleaseImage
释放头文件和图像数据(Releasestheheaderandtheimagedata.)
cvReleaseImageHeader
释放头文件
cvReleaseMat
参照计数器递减矩阵数据,并释放头文件
cvReshape
初始化CvMat头文件,使其指向与原始数组相同的数据,但形状不同,数量的通道不同,行列数不同
cvSetData
将用户数据分配给矩阵头文件
cvCreateMat
为新矩阵和底层数据分配头信息(header),并返回一个指向创建的矩阵的指针。
矩阵逐行存储。
所有行都对齐4个字节。
cvCreateImage
创建头文件并分配数据
方法—图像处理准备
BitwiseNot
反转
CheckRange
检查每个数组元素既不是NaN也不是+-inf,检查将在多个通道上单独进行,该功能还能检查每个值是否在最小值和最大值之间。
CLAHE
对比有限自适应直方图均衡(CLAHE)
Compare
比较两个数组的相应元素并填充目标掩码数组:
dst(I)=src1(I)opsrc2(I)
CountNonZero
返回数组中非零元素的数量
cvCheckArr
检查每个数组元素既不是NaN也不是Infinity。
如果设置了CV_CHECK_RANGE,它还会检查每个元素是否大于或等于minVal并小于maxVal
cvCreateSparseMat
分配一个多维系数矩阵的阵列。
初始该矩阵不含任何元素
cvGetSize
返回输入矩阵或图像的行列数
CvtColor(IInputArray,IOutputArray,ColorConversion,Int32)
将输入图像从一个颜色空间转换为另一个。
该函数忽略IplImage头的colorModel和channelSeq字段,因此应该正确指定源图像颜色空间(包括RGB空间的通道顺序,例如BGR表示B0的24位格式G0R0B1G1R1...布局,而RGB表示具有R0G0B0R1G1B1...布局的24位格式)
CvtColor(IInputArray,IOutputArray,Type,Type)
将输入图像从一个颜色空间转换为另一个。
EqualizeHist
直方图均衡化
ExtractChannel
从图像中提取特定通道
GetDepthType(Type)
获取相应的opencv深度类型
GetDepthType(DepthType)
获取相应的深度类型
Inpaint
使用补绘来恢复该图像定义位置像素的亮度
InRange
对输入数组的每个元素执行范围检查
MixChannels
把输入的矩阵(或矩阵数组)的某些通道拆分复制给对应的输出矩阵(或矩阵数组)的某些通道中,可用于更改通道的顺序,添加/删除Alpha通道,提取或插入单个通道或多个通道等。
Resize
将图像src调整到指定大小
ResizeForFrame
调整图像大小,使其适合给定的框架
Split
将多通道阵列划分为单独的单通道阵列。
有两种模式可用于操作。
如果原始阵列具有N个通道,那且前N个目标通道不是IntPtr.Zero,则它们都从源阵列中提取,若前N个通道中仅有一个不是IntPtr.Zero,则该特定通道为提取,否则会出现错误
方法—常规方法
BoundingRectangle
返回右上角点
Accumulate
整幅图像或选择区域累加
ApplyColorMap
将颜色应用于图像
BoxPoints(RotatedRect)
计算RotatedRect节点(RotatedRect该类表示平面上的旋转矩形,有三个属性:
矩形中心点(质心)、边长(长和宽)、旋转角度)
BoxPoints(RotatedRect,IOutputArray)
计算RotatedRect节点数组
CalcHist
计算图像的直方图
CalcMotionGradient
计算x,y方向的导数
CompareHist
比较两直方图
ConvertMaps
转换图像的表达方法
ConvertPointsFromHomogeneous
将点从齐性空间转换为欧氏空间
ConvertPointsToHomogeneous
将点从欧式空间转换为齐性空间
ConvertScaleAbs
与cvCvtScale类似,但它存储转换结果的绝对值。
使用线性变换转换输入数组元素成8位无符号整型
ConvexHull(PointF[],Boolean)
使用Sklansky算法找到2D点集的凸包
ConvexHull(IInputArray,IOutputArray,Boolean,Boolean)
使用Sklansky算法找到2D点集的凸包。
ConvexityDefects
找出轮廓的凸度缺陷
链接
CopyMakeBorder
将源2D数组复制到目标数组的内部,并在复制的区域周围形成指定类型的边框。
当需要模拟与嵌入到特定算法实现中的边框类型不同的边框类型时,该功能非常有用。
CvArrToMat
将CvMat、Ipiimage、CvMatND转换为矩阵
cvConvertScale
它将一个数组复制到另一个数组,首先执行缩放(可选)然后转换类型(可选),多通道阵列每个通道被单独处理。
dst(I)=src(I)*scale+(shift,shift,...)
cvCopy
将所选元素从输入数组复制到输出数组。
如果任何传递的数组是IplImage类型,则使用其ROI和COI字段。
两个数组必须具有相同的类型,相同的维数和相同的大小。
dst(I)=src(I)ifmask(I)!
=0
cvGetSpatialMoment
获取空间矩,在图像矩定义为:
M_{x_order,y_order}=sum_{x,y}(I(x,y)*x^{x_order}*y^{y_order})其中I(x,y)是像素的亮度(x,y)。
(Retrievesthespatialmoment,whichincaseofimagemomentsisdefinedas:
M_{x_order,y_order}=sum_{x,y}(I(x,y)*x^{x_order}*y^{y_order})whereI(x,y)istheintensityofthepixel(x,y).)
cvGetNormalizedCentralMoment
检索归一化的中心矩,在图像矩定义为:
eta_{x_order,y_order}=mu_{x_order,y_order}/M00^{(y_order+x_order)/2+1}的情况下,其中mu_{x_order,y_order}是中心时刻(Retrievesnormalizedcentralmoment,whichincaseofimagemomentsisdefinedas:
eta_{x_order,y_order}=mu_{x_order,y_order}/M00^{(y_order+x_order)/2+1},wheremu_{x_order,y_order}isthecentralmoment)
cvGetReal1D
返回单通道数组的特定元素。
如果阵列有多个通道,则会引发运行时错误。
cvGetReal2D
返回单通道数组的特定元素。
如果阵列有多个通道,则会引发运行时错误。
cvGetReal3D
返回单通道数组的特定元素。
如果阵列有多个通道,则会引发运行时错误。
cvGetImageCOI
返回图像感兴趣通道(若所有通道已选返回0)
cvGetImageROI
返回图像感兴趣通道(若所有通道已选返回0)
cvGetCentralMoment
检索中心矩?
(moment),在图像中定义为mu_{x_order,y_order}=sum_{x,y}(I(x,y)*(x-x_c)^{x_order}*(y-y_c)^{y_order})
其中x_c=M10/M00,y_c=M01/M00-重心的坐标
cvGetImageCOI
返回图像感兴趣通道(若所有通道已选返回0)
cvGetImageROI
返回图像感兴趣通道(若所有通道已选返回0)
cvInitMatHeader
初始化已分配的CvMat结构。
它可以用于使用OpenCV矩阵函数处理原始数据。
cvInitMatNDHeader
初始化由用户分配的CvMatND结构
cvMaxRect
查找包含两个输入矩形的最小面积矩形
cvRange
以如下方式初始化矩阵:
arr(i,j)=(end-start)*(i*cols(arr)+j)/(cols(arr)*rows(arr))
cvReleaseSparseMat
释放稀疏数组,并在退出时清除数组指针
cvResetImageROI
释放图像ROI。
之后整幅图像为被选中状态
cvSampleLine
应用一种线迭代器。
读取位于pt1和pt2之间的所有图像点(包括终点)并将它们存储到缓冲区
cvSetImageCOI
是设置图像的COI的函数,coi为0时表示选择所有通道,1表示第一个通道,2表示第二个等等。
cvSetImageROI
基于给定的矩形设置图像的ROI
cvSetReal1D
将新值分配给单通道阵列的特定元素
cvSetReal2D
将新值分配给单通道阵列的特定元素
cvSetReal3D
将新值分配给单通道阵列的特定元素
cvSetRealND
将新值分配给单通道阵列的特定元素
Decolor
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EmguCV类CvInvokeClass 方法整理要点 EmguCV CvInvokeClass 方法 整理 要点