note
// 边缘检测之loG算子:对高斯函数求二阶导数
// G(x,y) = exp(-1 * (x*x + y*y) / 2 / sigma / sigma)
// loG(x,y) = ((x*x + y*y - 2 * sigma * sigma) / (sigma^4)) * exp(-1 * (x*x + y*y) / 2 / sigma /sigma)
/*
[
0,0,-1,0,0;
0,-1,-2,-1,0;
-1,-2,16,-2,-1;
0,-1,-2,-1,0;
0,0,-1,0,0;
]
*/
code
void SetloGKernel(Mat& kernel) {
kernel = (Mat_<int>(5,5) << 0,0,-1,0,0, 0,-1,-2,-1,0, -1,-2,16,-2,-1, 0,-1,-2,-1,0 ,0,0,-1,0,0);
}
void OprationloG(Mat& src, Mat& res) {
Mat kernel;
SetloGKernel(kernel);
filter2D(src, res, src.type(), kernel);
}
test