該文章來源於:http://blog.csdn.net/hitwengqi/article/details/6877728
拉普拉斯變換也可以用作邊緣檢測,用二次導數的形式定義。
拉普拉斯變換(Laplace Transform),是工程數學中常用的一種積分變換。
關於拉普拉斯和傅里葉變換的對比及意義參考這裏
--------------------------------------------------------------------------------------------------------
拉普拉斯變換的函數爲:
Laplace
計算圖像的 Laplacian 變換
void cvLaplace( const CvArr* src, CvArr* dst, int aperture_size=3 );
- src
- 輸入圖像.
- dst
- 輸出圖像.
- aperture_size
- 核大小 (與 cvSobel 中定義一樣).
函數 cvLaplace 計算輸入圖像的 Laplacian變換,方法是先用 sobel 算子計算二階 x- 和 y- 差分,再求和:
對 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*/
laplace the image