OPENCV用户手册之图像处理部分(之一)梯度边缘与角点

上传人:碎****木 文档编号:220862200 上传时间:2021-12-09 格式:DOCX 页数:6 大小:62.74KB
返回 下载 相关 举报
OPENCV用户手册之图像处理部分(之一)梯度边缘与角点_第1页
第1页 / 共6页
OPENCV用户手册之图像处理部分(之一)梯度边缘与角点_第2页
第2页 / 共6页
OPENCV用户手册之图像处理部分(之一)梯度边缘与角点_第3页
第3页 / 共6页
亲,该文档总共6页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《OPENCV用户手册之图像处理部分(之一)梯度边缘与角点》由会员分享,可在线阅读,更多相关《OPENCV用户手册之图像处理部分(之一)梯度边缘与角点(6页珍藏版)》请在金锄头文库上搜索。

1、百度文库 - 让每个人公平地提升自我下面是 OPENCV 用户手册之图像处理局部:梯度、边缘与角点中文翻译,有错误欢送指正, 原文在:留意:本章描述图像处理和分析的一些函数。大多数函数是针对二维数组的。所以我们用数组来描述“图 像”,而图像不必是 IplImage,还可以是 CvMat”s 或 CvMatND。梯度、边缘和角点翻译:HUNNISH,Sobel使用扩展 Sobel 算子计算一阶、二阶、三阶或混合图像差分void cvSobel( const CvArr* src, CvArr* dst, int xorder, int yorder, int aperture_size=3 );

2、src输入图像.dst输出图像.xorderx? 方向上的差分阶数yordery? 方向上的差分阶数aperture_size扩展 Sobel 核的大小,必需是 1, 3, 5 或 7。 除了尺寸为 1, 其它状况下,aperture_size aperture_size 可分别内核将用来计算差分。对 aperture_size=1的状况, 使用 3x1 或 1x3 内核 不进展高斯平滑操作 。有一个特别变量 ? CV_SCHARR (=-1),对应 3x3 Scharr 滤波器,可以给出比 3x3 Sobel 滤波更精确的结果。Scharr 滤波器系数是:对 x-方向 以及转置矩阵对 y-方

3、向。| -303|-10010| -303|函数 通过对图像用相应的内核进展卷积操作来计算图像差分:dst(x,y) = dxorder+yodersrc/dxxorderdyyorder |(x,y)Sobel 算子结合 Gaussian 平滑和微分,以提高计算结果对噪声的抵抗力量。通常状况,函数调用承受如下参数 (xorder=1, yorder=0, aperture_size=3) 或 (xorder=0, yorder=1, aperture_size=3) 来计算一阶 x- 或 y- 方向的图像差分。第一种状况对应:4函数 计算输入图像的 Laplacian,方法是对用 sobel

4、 算子计算的二阶 x- 和 y- 差分求和:dst(x,y) = d2src/dx2 + d2src/dy2对 aperture_size=1 那么给出最快计算结果,相当于对图像承受如下内核做卷积:类似于 函数,也不作图像的尺度变换,而且支持输入、输出图像类型全都。Canny承受 Canny 算法做边缘检测核。其次种对应o|-1 -2 -1|核,它依靠于图像原点的定义 (origin 来自 IplImage 构造的定义)。不进展图像尺度变换。所以输出图像通常比输入图像大。为防止溢出,当输入图像是 8 位的,要求输出图像是 16 位的。产生的图像可以用函数 或 转换为 8 位的。除了 8-比特

5、图像,函数也承受 32-位 浮点数图像。全部输入和输出图像都必需是单通道,且图像大小或 ROI 尺寸全都。Laplace计算图像的 Laplacian?void cvLaplace( const CvArr* src, CvArr* dst, int aperture_size=3 );src输入图像.dst输出图像. aperture_size核大小 (与 中定义一样).|-101|-202|-101|-1-2-1| 000| 121|r| 121|000|010|1-41|010|void cvCanny( const CvArr* image, CvArr* edges, double

6、threshold1, double threshold2, int aperture_size=3 );image输入图像.edges输出的边缘图像threshold1第一个阈值threshold2其次个阈值aperture_sizeSobel 算子内核大小 (见 ).函数 承受 CANNY 算法觉察输入图像的边缘而且在输出图像中标识这些边缘。小的阈值threshold1 用来把握边缘连接,大的阈值用来把握强边缘的初始分割。PreCornerDetect计算特征图,用于角点检测void cvPreCornerDetect( const CvArr* image, CvArr* corners

7、, int aperture_size=3 );image输入图像. corners保存角点坐标的数组aperture_sizeSobel 算子的核大小(见).函数 计算函数 Dx2D +D 2yyyxxD- 2D D Dxyxy其中 D?表示一阶图像差分,D?表示二阶图像差分。 角点被认为是函数的局部最大值:eigenvv保存结果的数组。必需比输入图像宽 6 倍。block_size邻域大小 (见争辩). aperture_sizeSobel 算子的核尺寸(见 ).对每个象素,函数算差分的相关矩阵:考虑 block_size block_size 大小的邻域 S(p),然后在邻域上计| su

8、m (dI/dx)2sum(dI/dxdI/dy)|M = |S(p)S(p)| sum (dI/dxdI/dy)sum (dI/dy)2 |S(p)S(p)然后它计算矩阵的特征值和特征向量,并且按如下方式(1, 2, x1, y1, x2, y2)存储这些值到输出图像中,其中1, 2 - M 的特征值,没有排序(x1, y1) - 特征向量,对 1(x2, y2) - 特征向量,对 2CornerMinEigenVal计算梯度矩阵的最小特征值,用于角点检测void cvCornerMinEigenVal( const CvArr* image, CvArr* eigenval, int bl

9、ock_size, int aperture_size=3 );image输入图像. eigenval保存最小特征值的图像. 与输入图像大小全都block_size邻域大小 (见争辩 ). aperture_sizeSobel 算子的核尺寸(见 ). 当输入图像是浮点数格式时,该参数表示用来计算差分的浮点滤波器的个数.函数 与 类似,但是它仅仅计算和存储每个象素点差分相关矩阵的最小特征值,即前一个函数的 min(1, 2)FindCornerSubPix准确角点位置void cvFindCornerSubPix( const CvArr* image, CvPoint2D32f* corner

10、s,int count, CvSize win, CvSize zero_zone, CvTermCriteria criteria );image输入图像. corners输入角点的初始坐标,也存储准确的输出坐标count角点数目win搜寻窗口的一半尺寸。假设 win=(5,5) 那么使用 5*2+1 5*2+1 = 11 11 大百度文库 - 让每个人公平地提升自我小的搜寻窗口zero_zone死区的一半尺寸,死区为不对搜寻区的中心位置做求和运算的区域。它是用来避开自相 关矩阵消灭的某些可能的奇异性。当值为 (-1,-1) 表示没有死区。criteria求角点的迭代过程的终止条件。即角点位

11、置确实定,要么迭代数大于某个设定值,或者 是准确度到达某个设定值。 criteria 可以是最大迭代数目,也可以是准确度函数 通过迭代来觉察具有子象素精度的角点位置,或如下图的放射鞍点 radial saddle points。Sub-pixel accurate corner locator is based on the observation that every vector from the center q to a point p located within a neighborhood of q is orthogonal to theimage gradient at p

12、subject to image and measurement noise. Consider the expression: =DI T(q-p )ipii5where DIpiis the image gradient at the one of the points piin a neighborhood of q.The value of q is to be found such that iis minimized. A system of equations maybe set up with ” set to zero:isum (DI DIT)q - sum (DIDITp

13、 ) = 0ipipiipipiiwhere the gradients are summed within a neighborhood (“search window“) of q. Calling the first gradient term G and the second gradient term b gives:q=G-1bThe algorithm sets the center of the neighborhood window at this new centerq and then iterates until the center keeps within a set threshold.GoodFeaturesToTrack确定图像的强角点void cvGoodFeaturesToTrack( const CvArr* image, CvArr* eig_image, CvArr* temp_image,imageCvPoint2D32f* corners, int* corner_count, double quality_level, double min_distance, const CvArr* mask=NULL );输入图像,8-位或浮点 32-比特,单通道eig_image临时浮点 32-

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

当前位置:首页 > 行业资料 > 教育/培训

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