opencv中文手册

上传人:n**** 文档编号:56540043 上传时间:2018-10-13 格式:DOC 页数:72 大小:908KB
返回 下载 相关 举报
opencv中文手册_第1页
第1页 / 共72页
opencv中文手册_第2页
第2页 / 共72页
opencv中文手册_第3页
第3页 / 共72页
opencv中文手册_第4页
第4页 / 共72页
opencv中文手册_第5页
第5页 / 共72页
点击查看更多>>
资源描述

《opencv中文手册》由会员分享,可在线阅读,更多相关《opencv中文手册(72页珍藏版)》请在金锄头文库上搜索。

1、目录目录 1 梯度、边缘和角点 o1.1 Sobel o1.2 Laplace o1.3 Canny o1.4 PreCornerDetect o1.5 CornerEigenValsAndVecs o1.6 CornerMinEigenVal o1.7 CornerHarris o1.8 FindCornerSubPix o1.9 GoodFeaturesToTrack 2 采样、插值和几何变换 o2.1 InitLineIterator o2.2 SampleLine o2.3 GetRectSubPix o2.4 GetQuadrangleSubPix o2.5 Resize o2.6

2、WarpAffine o2.7 GetAffineTransform o2.8 2DRotationMatrix o2.9 WarpPerspective o2.10 WarpPerspectiveQMatrix o2.11 GetPerspectiveTransform o2.12 Remap o2.13 LogPolar 3 形态学操作 o3.1 CreateStructuringElementEx o3.2 ReleaseStructuringElement o3.3 Erode o3.4 Dilate o3.5 MorphologyEx 4 滤波器与色彩空间变换 o4.1 Smooth

3、 o4.2 Filter2D o4.3 CopyMakeBorder o4.4 Integral o4.5 CvtColor o4.6 Threshold o4.7 AdaptiveThreshold 5 金字塔及其应用 o5.1 PyrDown o5.2 PyrUp 6 连接部件 o6.1 CvConnectedComp o6.2 FloodFill o6.3 FindContours o6.4 StartFindContours o6.5 FindNextContour o6.6 SubstituteContour o6.7 EndFindContours o6.8 PyrSegmenta

4、tion o6.9 PyrMeanShiftFiltering o6.10 Watershed 7 图像与轮廓矩 o7.1 Moments o7.2 GetSpatialMoment o7.3 GetCentralMoment o7.4 GetNormalizedCentralMoment o7.5 GetHuMoments 8 特殊图像变换 o8.1 HoughLines o8.2 HoughCircles o8.3 DistTransform o8.4 Inpaint 9 直方图 o9.1 CvHistogram o9.2 CreateHist o9.3 SetHistBinRanges

5、o9.4 ReleaseHist o9.5 ClearHist o9.6 MakeHistHeaderForArray o9.7 QueryHistValue_1D o9.8 GetHistValue_1D o9.9 GetMinMaxHistValue o9.10 NormalizeHist o9.11 ThreshHist o9.12 CompareHist o9.13 CopyHist o9.14 CalcHist o9.15 CalcBackProject o9.16 CalcBackProjectPatch o9.17 CalcProbDensity o9.18 EqualizeHi

6、st 10 匹配 o10.1 MatchTemplate o10.2 MatchShapes o10.3 CalcEMD2 梯度、边缘和角点梯度、边缘和角点 SobelSobel 使用扩展 Sobel 算子计算一阶、二阶、三阶或混合图像差分 void cvSobel( const CvArr* src, CvArr* dst, int xorder, int yorder, int aperture_size=3 ); src 输入图像. dst 输出图像. xorder x 方向上的差分阶数 yorder y 方向上的差分阶数 aperture_size 扩展 Sobel 核的大小,必须是

7、1, 3, 5 或 7。 除了尺寸为 1, 其它 情况下, aperture_size aperture_size 可分离内核将用来计算差分。 对 aperture_size=1 的情况, 使用 3x1 或 1x3 内核 (不进行高斯平 滑操作)。这里有一个特殊变量 CV_SCHARR (=-1),对应 3x3 Scharr 滤波器,可以给出比 3x3 Sobel 滤波更精确的结果。Scharr 滤波器系 数是: 对 x-方向 或矩阵转置后对 y-方向。 函数 cvSobel 通过对图像用相应的内核进行卷积操作来计算图像差分: 由于 Sobel 算子结合了 Gaussian 平滑和微分,所以,

8、其结果或多或少对噪声 有一定的鲁棒性。通常情况,函数调用采用如下参数 (xorder=1, yorder=0, aperture_size=3) 或 (xorder=0, yorder=1, aperture_size=3) 来计算一阶 x- 或 y- 方向的图像差分。第一种情况对应: 核。 第二种对应: 或者 核的选则依赖于图像原点的定义 (origin 来自 IplImage 结构的定义)。由于 该函数不进行图像尺度变换,所以和输入图像(数组)相比,输出图像(数组)的 元素通常具有更大的绝对数值(译者注:即像素的位深)。为防止溢出,当输 入图像是 8 位的,要求输出图像是 16 位的。当然

9、可以用函数 cvConvertScale 或 cvConvertScaleAbs 转换为 8 位的。除了 8-位 图像,函 数也接受 32-位 浮点数图像。所有输入和输出图像都必须是单通道的,并且具 有相同的图像尺寸或者 ROI 尺寸。 LaplaceLaplace 计算图像的 Laplacian 变换 void cvLaplace( const CvArr* src, CvArr* dst, int aperture_size=3 ); src 输入图像. dst 输出图像. aperture_size 核大小 (与 cvSobel 中定义一样). 函数 cvLaplace 计算输入图像的

10、Laplacian 变换,方法是先用 sobel 算子计 算二阶 x- 和 y- 差分,再求和: 对 aperture_size=1 则给出最快计算结果,相当于对图像采用如下内核做卷积: 类似于 cvSobel 函数,该函数也不作图像的尺度变换,所支持的输入、输出图 像类型的组合和 cvSobel 一致。 CannyCanny 采用 Canny 算法做边缘检测 void cvCanny( const CvArr* image, CvArr* edges, double threshold1, double threshold2, int aperture_size=3 ); image 单通道

11、输入图像. edges 单通道存储边缘的输出图像 threshold1 第一个阈值 threshold2 第二个阈值 aperture_size Sobel 算子内核大小 (见 cvSobel). 函数 cvCanny 采用 CANNY 算法发现输入图像的边缘而且在输出图像中标识这 些边缘。threshold1 和 threshold2 当中的小阈值用来控制边缘连接,大的阈 值用来控制强边缘的初始分割。 注意事项:cvCanny 只接受单通道图像作为输入。 外部链接:经典的 canny 自调整阈值算法的一个 opencv 的实现见在 OpenCV 中自适应确定 canny 算法的分割门限 Pr

12、eCornerDetectPreCornerDetect 计算用于角点检测的特征图, void cvPreCornerDetect( const CvArr* image, CvArr* corners, int aperture_size=3 ); image 输入图像. corners 保存候选角点的特征图 aperture_size Sobel 算子的核大小(见 cvSobel). 函数 cvPreCornerDetect 计算函数 其中 D 表示一阶图像差分, 表示二阶图像差分。 角点被认为是函数的局 部最大值: / 假设图像格式为浮点数 IplImage* corners = cvC

13、loneImage(image); IplImage* dilated_corners = cvCloneImage(image); IplImage* corner_mask = cvCreateImage( cvGetSize(image), 8, 1 ); cvPreCornerDetect( image, corners, 3 ); cvDilate( corners, dilated_corners, 0, 1 ); cvSubS( corners, dilated_corners, corners ); cvCmpS( corners, 0, corner_mask, CV_CMP

14、_GE ); cvReleaseImage( cvReleaseImage( CornerEigenValsAndVecsCornerEigenValsAndVecs 计算图像块的特征值和特征向量,用于角点检测 void cvCornerEigenValsAndVecs( const CvArr* image, CvArr* eigenvv, int block_size, int aperture_size=3 ); image 输入图像. eigenvv 保存结果的数组。必须比输入图像宽 6 倍。 block_size 邻域大小 (见讨论). aperture_size Sobel 算子的

15、核尺寸(见 cvSobel). 对每个象素,函数 cvCornerEigenValsAndVecs 考虑 block_size block_size 大小的邻域 S(p),然后在邻域上计算图像差分的相关矩阵: 然后它计算矩阵的特征值和特征向量,并且按如下方式(1, 2, x1, y1, x2, y2)存储这些值到输出图像中,其中 1, 2 - M 的特征值,没有排序 (x1, y1) - 特征向量,对 1 (x2, y2) - 特征向量,对 2 CornerMinEigenValCornerMinEigenVal 计算梯度矩阵的最小特征值,用于角点检测 void cvCornerMinEige

16、nVal( const CvArr* image, CvArr* eigenval, int block_size, int aperture_size=3 ); image 输入图像. eigenval 保存最小特征值的图像. 与输入图像大小一致 block_size 邻域大小 (见讨论 cvCornerEigenValsAndVecs). aperture_size Sobel 算子的核尺寸(见 cvSobel). 当输入图像是浮点数格式时,该参 数表示用来计算差分固定的浮点滤波器的个数. 函数 cvCornerMinEigenVal 与 cvCornerEigenValsAndVecs 类似,但是它仅仅 计算和存储每个象素点差分相关矩阵的最小特征值,即前一个函数的 min(1, 2) CornerHarrisCornerHarris 哈里斯(Harris)角点检测 void cvCornerHarris( const CvArr* image, CvArr* harris_responce, int block_size, int

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 经验/事迹

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号