# 数字图像处理:边缘检测
## 给出“离散拉普拉斯算子”一般形式的数学推导
离散值的导数使用差分代替:
所以:
![](https://www.writebug.com/myres/static/uploads/2022/9/21/122497e3f0944af2a580437d5624ddd4.writebug)
以(x, y)为中心点,在水平和垂直方向上应用拉普拉斯算子,滤波器(对应a=1的情况)为:
![](https://www.writebug.com/myres/static/uploads/2022/9/21/5c7751970487cd942f27ca9c597e9b72.writebug)
这个滤波器在90°方向上是各向同性的,但在45°方向上不是。而拉普拉斯算子具有旋转不变性,所以在
°方向上也应该具有各向同性,所以再在45°方向上应用拉普拉斯算子(对应a=0.5的情况):
![](https://www.writebug.com/myres/static/uploads/2022/9/21/511999aa66ff65c351f834fcd33d9d4a.writebug)
#### 给出LoG形式的数学推导,并给出一个5*5大小的LoG算子
![](https://www.writebug.com/myres/static/uploads/2022/9/21/9c8009c8ee8ee82ec837bff1e738c486.writebug)
同理:
![](https://www.writebug.com/myres/static/uploads/2022/9/21/89fbb2b289203be030b402d059928dee.writebug)
常用的5*5滤波器模板为
![](https://www.writebug.com/myres/static/uploads/2022/9/21/47c97e324a7488dcb99108700fa7960e.writebug)
使用公式13,带入并归一化后可以算出:
![](https://www.writebug.com/myres/static/uploads/2022/9/21/d14ea0ca6928cf4120a08d52e67692b1.writebug)
使用Prewitt,Sobel,Canny,FDoG算子处理三张以上图片,分析并比较结果。
### 结果图片展示与分析
![](https://www.writebug.com/myres/static/uploads/2022/9/21/511999aa66ff65c351f834fcd33d9d4a.writebug)
图1
![](https://www.writebug.com/myres/static/uploads/2022/9/21/d73d44500e542ddd1253144f1899f9e6.writebug)
图2
![](https://www.writebug.com/myres/static/uploads/2022/9/21/11a8d898969975efb328c03ed0e3842c.writebug)
图3
![](https://www.writebug.com/myres/static/uploads/2022/9/21/7c2e68d3ebfad29332cb6852b764846f.writebug)
![](https://www.writebug.com/myres/static/uploads/2022/9/21/3347f946b00bf1e423965698c8398b32.writebug)
图4
![](https://www.writebug.com/myres/static/uploads/2022/9/21/f6a99423854bd09893cb26dff44e59d8.writebug)
![](https://www.writebug.com/myres/static/uploads/2022/9/21/59687cb9bf0762b5a2a1fa49813d0eba.writebug)
图5
prewitt算子和sobel算子都是一阶导数算子,只对图像求一阶导数,返回梯度值,而非0-1边界,所以图像较为平滑,并且有明暗灰度的变化,越明显的边界,在图中越亮,也就是梯度值越大。相比较的话, sobel算子的表现力更好一些,因为考虑了局部性原则,对像素点附近的像素附加了更大的权重,所以能更好的还原图像局部细节,如图3的左眼,图1图2的鼻梁;而prewitt算子是平均滤波,所以图像的灰度更加平均,二者在速度上没有什么差异。
Canny算子和FDoG算子都是返回的0-1边界,但是不同之处在于Canny算子进行了非极大值抑制,边界是一个像素宽的,FDoG的边界是多像素。FDoG处理过程中会将不明确的边界方向按邻居的方向来补全,所以边界具有更好的连续性,如图4中脸的左下边界。并且FDoG对于文字的边界能够几乎完整的识别出来,但是Canny的文字边界则是模糊不可辨认的,可能是由于FDoG识别图像的切线而文字较为连续。但是图4中FDoG对于山的边缘识别效果 差,山顶、边缘的山脉边界和雪线都没有识别出来,Sobel识别效果 好,山顶梯度值很高,雪线的边界明显。FDoG还倾向于把边缘连接成线,如图4右下角的草丛。图5中FDoG效果 差,将岩石的纹理全都识别为了边界,并且导致左下角草丛和山的边界不可辨认,而Canny算子效果稍好一些,Prewitt和Sobel算子效果 好。
两者也都具有一些问题,如把纹理识别为边界,如图3卫衣的帽子,这部分在Prewitt和Sobel中也具有较高的梯度值,应该是由于前面较暗,后面较亮,所以对比强烈被误认为了边界。有的边界也没有被识别出来,如图2的衣服图5后面的山脉,同样在Prewitt和Sobel算子中这个边界也并不明显,因为皮肤和白衣服的颜色、雪山和天空的颜色非常相近,所以这个边界的梯度值较小。在处理过程中,Canny的速度要慢得多,因为步骤繁琐,并且是对每个像素逐点计算的。
### 分析参数的影响
对FDoG的参数进行修改:
修改循环次数和有无高斯滤波
![](https://www.writebug.com/myres/static/uploads/2022/9/21/68668a0d9774e53f9e69f68631213186.writebug)
直观来看,循环次数对结果的影响并不大。仔细观察的话,可以发现随着循环次数的增多,图像识别出了更多细微的边缘。
![](https://www.writebug.com/myres/static/uploads/2022/9/21/ca1d3ed9289d6d55e6889d11314e10d0.writebug)
个高斯值的差也会随之变化
![](https://www.writebug.com/myres/static/uploads/2022/9/21/98a9fcc4e958e86a163d15199813b210.writebug)
也就是上式中的f(t)变化,由于没有进行非极大值抑制,边界像素点的数目就会增多,所以导致结果的线条粗细发生变化。
修改的值,论文中默认为3.0
![](https://www.writebug.com/myres/static/uploads/2022/9/21/3567d3a0d89ecb25da408d377a111ad6.writebug)
![](https://www.writebug.com/myres/static/uploads/2022/9/21/2ff4d7f30c0b507da3d96d051c9f5189.writebug)的变化对结果的影响也不明显,主要是边界线条会有更多的延伸, 出现在最后一次积分中:
![](https://www.writebug.com/myres/static/uploads/2022/9/21/c76fa858f3cd214cf48f86ab5d10728d.writebug)
论文中也解释到控制"flow kernel"的拉长程度,所以 增大时,G会减小,然后在 后的阈值判断中,小于阈值的像素点被认为是边界,这导致了会有更多的像素点成为边界,也就表现为线条的拉伸。
### -score评分与其他测试
使用论文中的两个测试用例如下,效果并不好,并且通过修改给定的那几个参数并没有显著提升。应该是在构建ETF时就没有构建好圆形的切线方向,后续的调参都是在ETF的基础上进行的,所以并没有改善结果。
![](https://www.writebug.com/myres/static/uploads/2022/9/21/58f96daca6119b02c36e6ee61203cff9.writebug)
![](https://www.writebug.com/myres/static/uploads/2022/9/21/6990034a6d2fbf3944b4cec10740b3b1.writebug)
#### F-score评分部分是与张庆阳同学合作完成的
为了测试这几种算子的分类效果,使用了伯克利大学提供的这个数据集可以用来进行图像分割和图像边缘检测,数据集中的ground truth是人工标记的。这里将数据集中给定的ground truth标注信息绘制成为黑白边界图像,如下所示。
![](https://www.writebug.com/myres/static/uploads/2022/9/21/d8cfbcfda5bf8bb12bcdec69409eb4e5.writebug)
然后对数据集中的图片应用四种边缘检测算子,与ground truth的结果进行对比,计算准确率、精准率、召回率和F-score。
| |准确率 |精准率 |召回率 |F-score |
|----|----|----|----|----|
| Prewitt |0.883 |0.914 |0.967 |0.940 |
| Sobel |0.909 |0.913 |0.995 |0.953 |
| Canny |0.769 |0.916 |0.840 |0.877 |
| FDoG |0.754 |0.926 |0.822 |0.871 |
| FDoG+NMS |0.894 |0.914 |0.979 |0.945 |
加入非极大值抑制之后,FDoG的F1-score和准确率都有了较大提升,这是因为ground truth中的边界是单像素宽的,如果不加非极大值抑制FDoG的结果会过宽,影响正确率。准确率不够高的另一个原因是 ground truth中只有真正的物体边界曲线而且有一些边界并没有标注(如上图上侧的横向边界),而不论是什么算子都会有一些纹理被识别成边界,造成误差。
#### 对FDoG算法添加非极大
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
基于opencv的数字图像处理:边缘检测 完整代码+实验报告 (431个子文件)
RunMe.bat 556B
opencv_world450.dll 58.44MB
opencv_videoio_ffmpeg450_64.dll 21.46MB
msvcp140.dll 439KB
opencv_videoio_msmf450_64d.dll 432KB
opencv_videoio_msmf450_64.dll 108KB
vcruntime140.dll 79KB
vcruntime140_1.dll 52KB
kernel32.dll 261B
opencv_interactive-calibration.exe 132KB
EdgeFlow.exe 70KB
opencv_visualisation.exe 58KB
opencv_annotation.exe 47KB
opencv_version.exe 36KB
opencv_version_win32.exe 34KB
EdgeFlow.iobj 851KB
EdgeFlow.ipdb 385KB
6.jpg 495KB
5.jpg 203KB
2.jpg 199KB
1.jpg 126KB
3.jpg 124KB
134067.jpg 115KB
4.jpg 114KB
187058.jpg 109KB
187099.jpg 109KB
346016.jpg 107KB
102062.jpg 107KB
196088.jpg 105KB
207049.jpg 105KB
79073.jpg 105KB
108004.jpg 104KB
296058.jpg 104KB
141012.jpg 102KB
101084.jpg 101KB
78098.jpg 100KB
134049.jpg 97KB
87015.jpg 96KB
259060.jpg 96KB
220003.jpg 96KB
277053.jpg 95KB
145079.jpg 93KB
217090.jpg 93KB
365072.jpg 92KB
175083.jpg 92KB
100039.jpg 92KB
77062.jpg 91KB
268074.jpg 91KB
141048.jpg 91KB
107072.jpg 89KB
196040.jpg 89KB
344010.jpg 89KB
103006.jpg 88KB
317043.jpg 88KB
207038.jpg 88KB
108036.jpg 87KB
385022.jpg 87KB
268048.jpg 86KB
335094.jpg 86KB
250047.jpg 85KB
33044.jpg 85KB
335088.jpg 85KB
258089.jpg 85KB
108069.jpg 85KB
101027.jpg 85KB
97010.jpg 84KB
147080.jpg 84KB
94095.jpg 84KB
45000.jpg 83KB
107045.jpg 83KB
309040.jpg 83KB
157087.jpg 83KB
253016.jpg 83KB
6046.jpg 83KB
15062.jpg 82KB
306052.jpg 82KB
117025.jpg 82KB
145059.jpg 82KB
17067.jpg 82KB
147077.jpg 81KB
48017.jpg 81KB
118031.jpg 81KB
223060.jpg 81KB
206097.jpg 81KB
112090.jpg 80KB
118072.jpg 80KB
235098.jpg 79KB
208078.jpg 79KB
163096.jpg 79KB
104010.jpg 79KB
247012.jpg 78KB
16068.jpg 77KB
226033.jpg 77KB
92014.jpg 77KB
71076.jpg 77KB
16004.jpg 77KB
189096.jpg 77KB
109055.jpg 76KB
14092.jpg 76KB
267036.jpg 76KB
共 431 条
- 1
- 2
- 3
- 4
- 5
甜辣uu
- 粉丝: 8383
- 资源: 1103
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
前往页