Edge detection using LoG
来源:互联网 发布:pc安装mac os单系统 编辑:程序博客网 时间:2024/09/21 06:17
intensity梯度值分布跟图片的大小有关, 比如将一张小图片放大后会变得很模糊, 原先清晰的edge, 即大的梯度值变得模糊. 但是原有的边缘通常还是肉眼可分辨的. 但用Sobel 算子可能就检测不出来的. 为了应付不同scale与blur程度图片的边缘检测, 检测算子需要能大能小, 大的用于检测大而blur的图片上的边缘, 小的用于检测精细的边缘. Sobel算子无法满足这个要求.
其实到现在已经可以看出对边缘检测算子的两个要求:
- 可以计算一阶或二阶导数
- 可大可小
Laplacian of Gaussian(LoG)就满足这样的要求.
LoG的定义
LoG里的Gaussian是期望为0的二元正态分布:
\[G(x, y) = e^{- \frac {x^2 + y^2}{2\sigma^2}}\]
它的Laplacian算子为:
\[ \triangledown^2 G = \frac {\partial^2 G}{\partial x^2} + \frac {\partial^2 G}{\partial y^2} = \left[ \frac {x^2 + y^2 - \sigma ^ 4}{\sigma ^ 2}\right] e ^{-\frac{x^2 + y^2}{2\sigma^2}}\]
指定mask大小以后, 通过采样可以得到近似的mask. 采样的方法不是唯一的, 唯一的要求是保留\(\triangledown^2 G\)的函数形态.
得到mask之后进行conv操作.
整个变换可以表示为:
\[T(x, y) = \triangledown^2 G(x, y) \odot I(x, y) = \triangledown^2 [G(x, y) \odot I(x, y))]\]
其中, $ \odot\(代表conv操作. 可以交换计算顺序的原因是\)Laplacian$也是一个线性操作(通过mask实现), conv操作也是.
Marr-Hildreth edge detection算法
算法步骤:
- 高斯平滑
- 计算Laplacian
- 寻找zero-crossing点(相反方向的两个相邻点的符号相反的点, 原理见前文的第二张图), 作为edge上的点
- Edge detection using LoG
- edge detection
- 论文阅读《Edge Detection Using Convolutional Neural Network》
- Canny Edge Detection Tutorial
- POJ 1009 Edge Detection
- poj 1009 Edge Detection
- Edge Detection: Sobel operator
- 1009 Edge Detection
- poj 1009 Edge Detection
- Sobel edge detection
- POJ 1009 Edge Detection
- POJ-1009-Edge Detection
- [POJ][1009]Edge Detection
- POJ 1008 Edge detection
- POJ 1009: Edge Detection
- POJ 1009 Edge Detection
- poj1009 Edge Detection
- POJ 1009--Edge Detection
- Laplacian算子
- 微软100题14题(在数组中查找两个数,使得它们的和正好是输入的那个数字)
- Edge Model
- Sobel算子
- 消息队列应用场景
- Edge detection using LoG
- 度量与非度量方法
- UE4 AI1
- Spring boot 系列 入门--配置
- Python小练习2:pandas.Dataframe使用方法示例demo
- Canny Edge Detector
- GitHub前100的开源库,非常实用
- SpringMVC中JSP页面不显示EL表达式的原因
- Edge Linking