#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/highgui/highgui.hpp"
#include <stdlib.h>
#include <stdio.h>
using namespace cv ;
/** @函数 main */
int main ( int argc , char ** argv )
{
Mat src , src_gray , dst ;
int kernel_size = 3 ;
int scale = 1 ;
int delta = 0 ;
int ddepth = CV_16S ;
char * window_name = "Laplace Demo" ;
int c ;
/// 装载图像
src = imread ( argv [ 1 ] );
if ( ! src . data )
{ return - 1 ; }
/// 使用高斯滤波消除噪声
GaussianBlur ( src , src , Size ( 3 , 3 ), 0 , 0 , BORDER_DEFAULT );
/// 转换为灰度图
cvtColor ( src , src_gray , CV_RGB2GRAY );
/// 创建显示窗口
namedWindow ( window_name , CV_WINDOW_AUTOSIZE );
/// 使用Laplace函数
Mat abs_dst ;
Laplacian ( src_gray , dst , ddepth , kernel_size , scale , delta , BORDER_DEFAULT );
convertScaleAbs ( dst , abs_dst );
/// 显示结果
imshow ( window_name , abs_dst );
waitKey ( 0 );
return 0 ;
}
void
Laplacian
( const
Mat &
src ,
Mat &
dst , int
ddepth , int
ksize=1 , double
scale=1 , double
delta=0 , int
borderType=BORDER_DEFAULT
)
Calculates the Laplacian of an image
Parameters:
src – Source imagedst – Destination image; will have the same size and the same number of channels as src ddepth – The desired depth of the destination imageksize – The aperture size used to compute the second-derivative filters, see getDerivKernels() . It must be positive and oddscale – The optional scale factor for the computed Laplacian values (by default, no scaling is applied, see getDerivKernels() )delta – The optional delta value, added to the results prior to storing them in dst borderType – The pixel extrapolation method, see borderInterpolate()