功能:
cvLaplace 是計算圖像的 Laplacian 變換 ,是Intel開源項目opencv中的函數
函數形式:
void cvLaplace( const CvArr* src, CvArr* dst, int aperture_size=3 );
參數列表:
Src 輸入圖像.
Dst 輸出圖像.
aperture_size算子內核大小(濾波計算矩陣的大小默認為3)可以是1、3、5、7
注釋:源圖像src既可以是8位(無符號)圖像,也可以是32位(浮點)圖像
目標圖像src必須是16位(有符號)或者32位(浮點)圖像
program cv_Laplace;{$APPTYPE CONSOLE}
{$R *.res}usesSystem.SysUtils,ocv.highgui_c,ocv.core_c,ocv.core.types_c,ocv.imgproc_c,uResourcePaths;constfilename = cResourceMedia + 'cat2.jpg';varimage: pIplImage = Nil;dst: pIplImage = Nil;dst2: pIplImage = Nil;aperture: Integer = 3;begintry// 嘗試加載圖像文件image := cvLoadImage(filename);WriteLn(Format('[i] 圖像: %s', [filename]));// 創建目標圖像dst := cvCreateImage(cvGetSize(image), IPL_DEPTH_16S, image^.nChannels);dst2 := cvCreateImage(cvGetSize(image), image^.depth, image^.nChannels);// 創建兩個窗口,一個顯示原始圖像,一個顯示 Laplace 變換后的圖像cvNamedWindow('原始圖像', CV_WINDOW_AUTOSIZE);cvNamedWindow('cvLaplace8b', CV_WINDOW_AUTOSIZE);// 對圖像進行 Laplace 變換cvLaplace(image, dst, aperture);// 將16位圖像轉換為8位圖像以顯示cvConvertScale(dst, dst2);// 在窗口中顯示原始圖像和 Laplace 變換后的圖像cvShowImage('原始圖像', image);cvShowImage('cvLaplace8b', dst2);// 等待按鍵cvWaitKey(0);// 釋放圖像內存cvReleaseImage(image);cvReleaseImage(dst);cvReleaseImage(dst2);// 銷毀所有窗口cvDestroyAllWindows();excepton E: Exception doWriteLn(E.ClassName, ': ', E.Message);end;
end.