预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共116页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

Cv中文参考手册 Cv图像处理 Wikipedia,自由的百科全书 注意:本章描述图像处理和分析的一些函数。大多数函数都是针对两维象素数组的,这里,我们称这些数组为“图像”,但是它们不一定非得是IplImage结构,也可以是CvMat或者CvMatND结构。 梯度、边缘和角点 Sobel 使用扩展Sobel算子计算一阶、二阶、三阶或混合图像差分 voidcvSobel(constCvArr*src,CvArr*dst,intxorder,intyorder,intaperture_size=3); src 输入图像. dst 输出图像. xorder x方向上的差分阶数 yorder y方向上的差分阶数 aperture_size 扩展Sobel核的大小,必须是1,3,5或7。除了尺寸为1,其它情况下,aperture_size×aperture_size可分离内核将用来计算差分。对aperture_size=1的情况,使用3x1或1x3内核(不进行高斯平滑操作)。这里有一个特殊变量CV_SCHARR(=-1),对应3x3Scharr滤波器,可以给出比3x3Sobel滤波更精确的结果。Scharr滤波器系数是: 对x-方向以及转置矩阵对y-方向。 函数cvSobel通过对图像用相应的内核进行卷积操作来计算图像差分: 由于Sobel算子结合了Gaussian平滑和微分,所以,其结果或多或少对噪声有一定的鲁棒性。通常情况,函数调用采用如下参数(xorder=1,yorder=0,aperture_size=3)或(xorder=0,yorder=1,aperture_size=3)来计算一阶x-或y-方向的图像差分。第一种情况对应: 第二种对应: 或者 核的选则依赖于图像原点的定义(origin来自IplImage结构的定义)。由于该函数不进行图像尺度变换,所以和输入图像(数组)相比,输出图像(数组)的元素通常具有更大的绝对数值(译者注:即象素的深度)。为防止溢出,当输入图像是8位的,要求输出图像是16位的。当然可以用函数cvConvertScale或cvConvertScaleAbs转换为8位的。除了8-比特图像,函数也接受32-位浮点数图像。所有输入和输出图像都必须是单通道的,并且具有相同的图像尺寸或者ROI尺寸。 Laplace 计算图像的Laplacian变换 voidcvLaplace(constCvArr*src,CvArr*dst,intaperture_size=3); src 输入图像. dst 输出图像. aperture_size 核大小(与cvSobel中定义一样). 函数cvLaplace计算输入图像的Laplacian变换,方法是先用sobel算子计算二阶x-和y-差分,再求和: dst(x,y)=d2src/dx2+d2src/dy2 对aperture_size=1则给出最快计算结果,相当于对图像采用如下内核做卷积: 类似于cvSobel函数,该函数也不作图像的尺度变换,所支持的输入、输出图像类型的组合和cvSobel一致。 Canny 采用Canny算法做边缘检测 voidcvCanny(constCvArr*image,CvArr*edges,doublethreshold1, doublethreshold2,intaperture_size=3); image 输入图像. edges 输出的边缘图像 threshold1 第一个阈值 threshold2 第二个阈值 aperture_size Sobel算子内核大小(见cvSobel). 函数cvCanny采用CANNY算法发现输入图像的边缘而且在输出图像中标识这些边缘。threshold1和threshold2当中的小阈值用来控制边缘连接,大的阈值用来控制强边缘的初始分割。 PreCornerDetect 计算用于角点检测的特征图, voidcvPreCornerDetect(constCvArr*image,CvArr*corners,intaperture_size=3); image 输入图像. corners 保存候选角点的特征图 aperture_size Sobel算子的核大小(见cvSobel). 函数cvPreCornerDetect计算函数其中表示一阶图像差分,表示二阶图像差分。角点被认为是函数的局部最大值: //假设图像格式为浮点数 IplImage*corners=cvCloneImage(image); IplImage*dilated_corners=cvCloneImage(image); IplImage*corner_mask=cvCreateImage(cvGetSize(image),8