第六章/图像变换 拉普拉斯变换
//r
//2010,Nov 16th 2010-11-16 21:52:23
计算图像的 Laplacian 变换
void cvLaplace( const CvArr* src, CvArr* dst, int aperture_size=3 );
函数 cvLaplace 计算输入图像的 Laplacian变换,方法是先用 sobel 算子计算二阶 x- 和 y- 差分,再求和:
dst(x,y) = d2src/dx2 + d2src/dy2
对 aperture_size=1 则给出最快计算结果,相当于对图像采用如下内核做卷积:
类似于 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; }
一直有一个疑问:我做得结果跟书上的一样吗?????
好像差了蛮多的!
如果