量子力学拉普拉斯算子,求推理过程详解,急急急!!

作用原理:拉普拉斯算子可以用于边缘检测,同时该算子不具有方向性,可以同时检测到 X 方向和 Y 方向的边缘,综合后检测出图像的边缘。即拉普拉斯算子是 各向同性 的,这在很多情况下是一个优点,因为我们一般来说会同时关注 X 方向和 Y 方向的边缘,所以这时候就不需要做两次,一次边缘检测就能得到结果。这里要注意的是,拉普拉斯算子是一种 二阶导数 算子,所以对噪声很敏感,在实际运用中通常会搭配高斯滤波一起用。公式:函数原型:
void cv::Laplacian ( InputArray
src,
OutputArray
dst,
int
ddepth,
int
ksize = 1,
double
scale = 1,
double
delta = 0,
int
borderType = BORDER_DEFAULT
)
解析:src:输入图像dst:输出图像(尺寸和通道数与输入一致)ddepth:目标数据类型(位深,比如 CV_32F)ksize:用于计算滤波器二阶导数的孔径尺寸(必须是正奇数)scale:计算所得拉普拉斯值的缩放因子(可选,默认没有缩放)delta:对计算结果整体做一个正向偏移(可选,默认没有偏移)borderType:边界外推方法注: 当 ksize=1 时,拉普拉斯算子滤波器为 3X3 的孔径,如下:后三个参数一般选择默认值代码示例:void TestLaplacian()
{
cv::Mat lena = cv::imread("lena.jpg", 1);
cv::Mat blured;
cv::Mat result_1;
cv::Mat result_2;
cv::GaussianBlur(lena, blured, cv::Size(5, 5), 0, 0);
cv::Laplacian(lena, result_1, CV_32F);
cv::Laplacian(blured, result_2, CV_32F);
cv::imshow("lena", lena);
cv::imshow("result_1", result_1);
cv::imshow("result_2", result_2);
cv::waitKey(0);
return;
}
原图:单独使用拉普拉斯算子进行边缘检测:先用高斯滤波,再用拉普拉斯算子进行边缘检测:可以看到,搭配使用后效果更佳

我要回帖

更多关于 什么是拉普拉斯算子 的文章