我有丰富的信号处理经验,但自从我快乐的大学时代以来就没有接触过图像处理......所以:
在一个辅助项目上工作,我需要增强 2D 灰度图像中的脊(连续线)。使用 Matlab,我处于 Canny 边缘检测做得很好的地步,但由于许多线条很粗,我得到每个脊的 2 个边缘。一些问题:
- Canny 是适合这项任务的工具吗?
- 如果是这样,我如何调整 Canny 算法来增强脊而不是边缘?
- 我在哪里可以找到 Canny 边缘检测的良好介绍(谷歌搜索,没有发现任何真正有用的东西)?
我有丰富的信号处理经验,但自从我快乐的大学时代以来就没有接触过图像处理......所以:
在一个辅助项目上工作,我需要增强 2D 灰度图像中的脊(连续线)。使用 Matlab,我处于 Canny 边缘检测做得很好的地步,但由于许多线条很粗,我得到每个脊的 2 个边缘。一些问题:
Canny 的原始论文解决了除了台阶边缘之外的脊边缘和屋顶边缘的问题,但我不知道有任何“Canny”边缘检测的实现可以检测除台阶边缘以外的任何东西。Canny 的论文很容易阅读,但不幸的是,它是收费的。J. Canny,“边缘检测的计算方法”,IEEE Trans。模式分析和机器智能,8:679-714,1986。
Canny 的论文实际上是关于如何使用变分法推导出对每种类型的边缘都具有最佳响应的一维滤波器。事实证明,脊边缘滤波器不是尺度不变的(你必须知道你的脊有多宽)。这是 Canny 论文中关于最佳山脊和屋顶检测算子的图片(第 683 页,© IEEE,1986,这是“合理使用”):
通常称为“Canny 边缘检测”的内容如下:
从理论上讲,您应该能够通过仅更改步骤 1 将 Canny 边缘检测器变成脊边缘检测器,但我从未尝试过。