#include <opencv2\opencv.hpp>
#include <stdio.h>
#include<highgui.h>
int main(int argc, char* argv[])
{
IplImage *src=cvLoadImage("1.jpg");
IplImage *s=cvCreateImage(cvGetSize(src),8,1);
IplImage *dst=cvCreateImage(cvGetSize(src),IPL_DEPTH_16S,1);
//把源图像转化为灰度图像
cvCvtColor(src,s,CV_RGB2GRAY);
cvNamedWindow("src");
cvShowImage("src",s);
cvNamedWindow("Filtering");
/*
cvLaplce函数通把源图像和目标图像以及中孔大小作为变量。
源图像可以是8位,也可以是32位。
而目标图像必须是16位或32位
拉普拉斯算子是沿X轴和Y轴的二次导数的和,
这意味着周围是更高值得单点或者小块(比中孔小)会使这个函数值最大化。
反过来,周围是更低值的点将会使函数的负值最大化(如第二张图所示)*/
cvLaplace(s,dst,7);
cvShowImage("Filtering",dst);
cvWaitKey(0);
cvReleaseImage( &src );
cvReleaseImage( &dst );
return 0;
}
拉普拉斯算子是沿X轴和Y轴的二次导数的和,
这意味着周围是更高值得单点或者小块(比中孔小)会使这个函数值最大化。
反过来,周围是更低值的点将会使函数的负值最大化