第六章/图像变换 拉普拉斯变换

                                             第六章/图像变换 拉普拉斯变换

//r

//2010,Nov 16th 2010-11-16 21:52:23

 

Laplace

计算图像的 Laplacian 变换

void cvLaplace( const CvArr* src, CvArr* dst, int aperture_size=3 );
src
输入图像.
dst
输出图像.
aperture_size
核大小 (与 cvSobel 中定义一样).

函数 cvLaplace 计算输入图像的 Laplacian变换,方法是先用 sobel 算子计算二阶 x- 和 y- 差分,再求和:

dst(x,y) = d2src/dx2 + d2src/dy2

对 aperture_size=1 则给出最快计算结果,相当于对图像采用如下内核做卷积:

/begin{bmatrix}     0 & 1 & 0 //     1 & -4 & 1 //     0 & 1 & 0  /end{bmatrix}

类似于 cvSobel 函数,该函数也不作图像的尺度变换,所支持的输入、输出图像类型的组合和cvSobel一致。

 

 

OpenCV的拉普拉斯函数实现了拉普拉斯算子的离散模拟。

 

因为拉普拉斯算子可以用二次导数的形式定义,所以在opencv中就是用cvSobel来实现拉普拉斯函数;

 

#include "cv.h" #include "highgui.h" #include "stdio.h" #include "stdlib.h" int main(int argc, char ** argv) { IplImage * src, *dst ; src = cvLoadImage(argv[1],0); dst = cvCreateImage(cvGetSize(src), IPL_DEPTH_16S,1) ; cvNamedWindow("src",0) ; cvShowImage("src",src); cvNamedWindow("Laplace",0) ; cvLaplace(src,dst,7) ; cvShowImage("Laplace",dst); cvWaitKey(0) ; cvReleaseImage(&src) ; cvReleaseImage(&dst); return 0; }

 

第六章/图像变换 拉普拉斯变换_第1张图片

 

 

 

一直有一个疑问:我做得结果跟书上的一样吗?????

好像差了蛮多的!

 

 

如果

 

 

你可能感兴趣的:(DST,2010)