一、拉普拉斯滤波(Laplacian Filtering)
1、核心原理
- 拉普拉斯滤波是通过计算图像的二阶导数来检测边缘,它对图像中的快速亮度变化非常敏感。拉普拉斯算子是一个二阶差分算子,能更好地检测到边缘。
2、功能详解
- 主要用于边缘检测。
- 强调图像的变化区域,适合用于检测突变区域(如边缘)
3、参数详解
- src: 输入图像。
- dst: 输出图像。
- ddepth: 输出图像的数据类型,通常设置为 -1 表示与输入图像相同。
- ksize: 拉普拉斯滤波器的大小,通常为3或5。
- scale: 结果的缩放因子
4、示例代码
Mat src = Cv2.ImRead("image.jpg", ImreadModes.Grayscale); // 读取灰度图像
Mat dst = new Mat();
// 使用拉普拉斯算子进行滤波
Cv2.Laplacian(src, dst, MatType.CV_16S, 3); // 3是卷积核的大小
Cv2.ConvertScaleAbs(dst, dst); // 将图像转换为绝对值,便于显示
Cv2.ImShow("Laplacian Edge Detection", dst); // 显示结果
Cv2.WaitKey(0); // 等待用户按键
- src: 输入的灰度图像。
- dst: 输出图像,经过拉普拉斯算子处理后,得到的边缘图像。
- MatType.CV_16S: 输出图像的深度为 16S,表示带符号的16位整数类型,用于保留更高的精度。
- 3: 卷积核的大小,3表示使用3x3的卷积核。
通过 Cv2.ConvertScaleAbs 将图像的结果转换为绝对值并转换为8位无符号类型,便于显示。
二、资料
技能拾荒者《OpenCV功能使用200篇》:
https://blog.csdn.net/weixin_45590420/article/details/143785305