您的位置:首页 > 其它

图像变换 -拉普拉斯变换(cvLaplace)

2012-08-23 20:35 344 查看
拉普拉斯变换(Laplace Transform),是工程数学中常用的一种积分变换。

拉普拉斯变换也可以用作边缘检测,用二次导数的形式定义。函数 cvLaplace 计算输入图像的 Laplacian变换,方法是先用 sobel 算子计算二阶x和y差分,再求和。



可假设其离散实现类似于二阶Sobel导数。事实的确如此,OpenCV在计算Laplace算子时直接使用Sobel算子。

拉普拉斯变换的函数为:

Laplace

计算图像的 Laplacian 变换

void cvLaplace( const CvArr* src, CvArr* dst, int aperture_size=3 );
src

输入图像。

dst

输出图像。

aperture_size

核大小 (与 cvSobel 中定义一样)。

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



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

/*code*/

#include <highgui.h>
#include <cv.h>

int main(int argc, char ** argv)
{
IplImage* src, *dst;
src = cvLoadImage( argv[1] );
dst = cvCreateImage( cvGetSize( src ), IPL_DEPTH_16S, 3 );
cvNamedWindow( "src", 0 );
cvShowImage( "src", src );
cvNamedWindow( "Laplace", 0 );
cvLaplace( src, dst, 7 ); //拉普拉斯变换,边缘检测
cvShowImage( "Laplace", dst );
cvWaitKey(0);

cvReleaseImage( &src );
cvReleaseImage( &dst );

return 0;
}

/*result*/



转载:/article/7721195.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: